Quote:
Your final "dumb" solution would work pretty effectively for this - the only downside is adding the extra script to the package


No, you don't need an extra script.

You can keep all of it in the same script - you just need to nail down the bootstrap code so that it is so simple that you will never need to change it.

KiXtart does not lock the script file so overwriting it is not going to cause any problems.

The fact that the process executing the bootstrap code may have an out of date copy of the script in memory is not relevant - the bootstrap code is never going to change, so the process can continue to run with the stale copy.

If you want to make it *really* bullet proof you could make your bootstrap process regularly check the registry for updated code to Execute() instead of it's local in-memory copy of the code. Then, when a new version of the script is deployed it checks the version of the running parent when the next child is invoked and if the parent is out of date it writes the code patch to the registry so that the bootstrap process reads it in the next iteration. The bootstrap script removes the code from the registry at startup of course. I don't think that this additional complexity is needed if you get a good design for the bootstrap code.