Might this be because of the sticky S setting in laser mode definition?
Yes. If you set the sticky feature then the S parameter is remembered across G0 moves. This is IMO a dangerous thing to do, but unfortunately it's what the programs that generate GCodes for laser cutters and engravers expect. I'd much rather those programs generated the S parameter on every G1 move that needs the laser on, which would be the safe thing to do.
You can use command G1 S0 at the end of your GCode file (or in your stop.g file, if your program ends with a M0 command) to reset the laser power to zero.
It's occurred to me that the firmware could remember the laser power setting separately for each input channel, so I may implement this in a future firmware version. I'll also change it to reset the remembered laser power to zero automatically at the end of a job, if it doesn't already.