Unfortunately the E_Holdout combined with the E_Image doesn’t work as a gobo holdout. The E_Holdout is for opaque holdout objects which can be specified as a mesh or an SDF surface. So in your case the E_Image is being interpreted as an opaque SDF surface, which probably isn’t what you want. This is the reason some of the samples were subtracting a small value - for an SDF, subtracting a constant makes the surface slightly larger. Eddy doesn’t currently support gobo holdouts, but they are on the future feature list.
The noise is just due to this being a difficult setup to sample, as the lights are deep inside the volume so simply need more progressions to resolve. Note that increasing the maximum number of progressions won’t slow down the render proportionally, as Eddy will only use the extra progressions in the regions where they are needed. Increasing the error bound at the same time can also help to make sure the additional progressions are mainly used for the noisy region. For example, here’s a render with 5,000 progressions and an error bound of 0.05:
This only took about 50% longer than the 800 progressions. The error bound was probably a little big, maybe 0.02 would have been a better choice. Also a decent denoiser would clean this up even at a low progression count, that’s something we’re planning on including in Eddy very soon.