I have spent the past 3 days running in-place while tracking down the cause of forced reboots on my system, but have finally narrowed it down to a very specific cause. I have a service suite that I am working on in Wix. There are 10 msi's that are all held together with a burn install. As these 10 installs run, they create dependencies on the services that are installed before them. Everything on this install works great, except for uninstalling it when the services are up and running. The service that has others relying on it tells Windows a restart is necessary even though it isn't (to the best of my knowledge).
Calling the bootstrapper with the argument '/norestart' stops the silent uninstall from auto-restarting, but windows still ends up in the "don't do anything else until a reboot happens" phase which is better, but not ideal.
Is there any way to have my CulpritServiceInstall.msi be physically unable to flag my machine for a restart? I understand this may not be the best solution, but I am 90% convinced the restart flag is being set on false assumptions by the windows installer (it is worried that certain services need to start up again, but they have been purged from the system).
I can post my wix wxs file for everyone if anyone thinks that can help.
Validation of my issue: if the dependent services are not running during the time of the uninstall, everything goes fine. It seems like the uninstall takes a snapshot of the services' state at the beginning of uninstall 1, and holds onto it until the very end.
EDIT: BradFordrg found my issue. I somehow got pretty far off the correct path to fixing this. I never tried running the angry msi all by itself. I always paired it with my dependent services. My testing was too bias. I could have found this myself by scanning the msi log for the word "reboot" which I thought I did, but clearly did not.