That’s really decent 
I highly doubt that, too much complexity
Although I would want to t see a sophisticated turn-key rendering solution, I’ve accepted that three.js isn’t headed in that directly. Which isn’t necessarily a bad thing either, over the years it’s become easier to extend three.js and build on top of it as some sort of mid-level API.
That’s 1000 generation, or the 900? I’m not sure what the frame of reference is. Never had the pleasure of working with one of those beasties 
You mean doing lighting on a G-buffer? Yeah, that would be faster.
Overall I ran into a bit of a wall here, my implementation is… “elastic”, it can be configured to any cluster resolution, such as 32x32x32 clusters or even 1x1x1 which would be equivalent of not having clustered benefits at all. The issue is light assignment to clusters. More clusters you have - less work your GPU needs to do, as there will be fewer lights binned to a cluster. At the same time, assigning lights to more clusters takes more CPU work.
I’ve optimized it to a fairly extreme degree, there’s a custom BVH implementation written specifically for it, most of the code is inlined, almost all of the data is in typed buffers, even forcing shared ArrayBuffers for ensure better data locality. Heck, I even did register pressure optimizations in JS code. I’m fairly positive that there’s little room left for optimization there. Yet still, each cluster assignment takes non-trivial amount of time.
At this point, I’ve considered moving the whole “visible lights” index as a BVH directly to GPU, bypassing clustering altogether, but that creates its own problems because of extra loops and branches.
I look forward to GPU compute coming in WebGPU next year, doing cluster light assignment on GPU would remove this bottleneck.
For now I’m pretty happy, the example with Sponza is actually a pretty bad case for my engine, as it’s currently tuned more towards 100-ish lights per view and with little overlap between lights. Sponza demo uses fairly large lights and they are quite densely packed, resulting in large number of light per cluster.
Thanks for the comments 