Some sort of just-in-time compilation for labscript has been discussed in the past, but nothing eventuated. Most solutions slow down the cycle time and end up with tight coupling between runmanager and BLACS, which we generally try to avoid.
Something I have done before is have a shared set of globals and experiment logic that is used across all experiment logic Python files. Runmanager can have multiple globals files loaded/open for the one experiment without issue. This shared globals/code would perform your MOT initialisation at both the start and end of the experiment. That way, regardless of what experiment is next, it's assumed that the previous one left the MOT in the expected state. BLACS should preserve the channel state between the end of a shot and the start of the next. If you aren't seeing that, then either there is a bug in BLACS, a bug in the labscript_device code, or a bug in your experiment logic. It definitely used to be possible to start the MOT loading at the end of the previous experiment provided the next shot had access to the shared globals. You just have to ensure the final value of the channel(s) of the first shot match the starting values at the start of the next shot.
Let me know if that's of any use to you!
Cheers,
Phil