Multidimensional outputs make WCS generate a GranuleStackImpl as the output "coverage".
This plays badly with the coverage cleanup code here:
because the GranuleStackImpl.getRenderedImage returns null:
thus preventing the "recursive cleanup" code that also ends up closing readers and the like (because it's based on the RenderedImage, not the coverage)
Indeed I don't see NetCDFImageReader.dispose ever being called in a debugger, while doing requests over NetCDF inputs doing multi-coverage NetCDF outputs.
Move the granuleStack interface to core, and have the cleaner callback recognize it and clean each single coverage in it
Make GranuleStackImple return a RenderedImageList and have CoverageCleanerCallback recognize and handle it correctly