Using depth = -y for depth sorting is the problem. You lose a lot your layer functions with all those unmanaged layers and that's why YYG advises not to use such a method.
If you must use that method, then don't just set it to negative y. Set it to a value that will actually fit between the background and the light engine. That could be as simple as room_height - y and then set the light engine on a layer with depth of -1.
You could also try setting the depth of the layer the light engine is on to be "-room_height - 1".
None of these are ideal however because a real depth sorting method should be used. Eclipse also factors in depth for lighting and your light placement might be difficult if you have everything at random layer depths.