Are you using a Push or Policy as your delivery method?
Using Provisioning would be the most reliable method for multiple reboots.
I tried a straight Push and a Policy Supported Push. Both failed.
The problem with Provisioning is that it ignores whatever Delivery Method you use and just installs the application. No option to tell the user what is happening, or give them the option to delay until later.
I'm wondering do you have a packagebundle with Software, Reboot (mentioned script), software or the software execution are also in the Script?
I'm asking because I want to take some reboots in a package bundle.
Have you considered creating a provisioning template to bundle the packages and reboots? Provisioning templates do not have to be used only in imaging processes. I have a couple of templates I use to perform an uninstallation of Office 2010 and install Office 2013 (x86-x86, x86-x64, x64-x64 versions of the Office suit).
I've already used this feature with no issues on 9.5 SP2, both push or policy method should work.
Are you using a script ? show us the code it will be easier to help you.