The simulation is already run for each client, where the info is grabbed from currently afaik for the lights. That loop sounds like just another layer on top or replacement of current control system, just added complexity and not really resolving the need for the mentioned bookkeeping? If the loop would process each factory you'd have to bookkeep the factories to be included and run them in a batch or start a separate loop for each factory and kill it once not needed anymore.
I'm not familiar with all the technical bits regarding the lights, but in general triggers that rely on game engine functions are usually way more optimized than manual loops done on the scripting side.
And all that complexity for lights that most don't even know about