Yes, indeed, effects that are called from light switches will be seen as operational all the time when you switch the lights on.
The way to control it is to write a XML gauge that sits in your panel.cfg as an 'invisible' gauge which applies logical conditions to when the effects will appear. For example, if you had an effect that caused a heat blur to appear behind an engine, you would write the XML such that the heat blur was not turned on until maybe the engine N1 value was above a certain level. Or with wingtip/flap contrails, that the environmental conditions (temperature, humidity, speed) were right.
So you'd decide which light would control which effect (for example switch 10 nominally controls cabin lights), then write some XML that would control a particular effect by switching light switch 10 on or off depending on the gauge logic. Then add the XML gauge to the panel.cfg in the normal way.