You might consider using geometry with LightMtl instead. You can still do things like different light colors with MultiMap and CoronaColor distributed by instance, MatID etc, set directionality, advanced ray switches... you'll have to switch them on/off using the material editor, but it might be easier on the viewport performance. In fact, it's something I prefer over having hundreds of light objects in the scene as pretty much all the same controls exist in LightMtl (except for a light target object).