Figured out the lights issue: apparently, lights created after materials are rendered don't show up until you tell the material that it needs an update.

So I was thinking I'd just preallocate a bunch of lights to avoid having to update /every single material/, but that caused massive performance issues.

So then I switched to WebGLDeferredRenderer as everything I've read says that it works just fine with tons of lights, but now the scene won't render at all. So that's where this is at.