Get the script to wait for a certain delay time to test and you might be able to pinpoint the error that way. I don't even own an Xbox so I don't know anything about it.
In Windows 8 though if you're having permission issues you may be able to invoke the Admin account to run the script with RunAs.exe.
There is a /WAIT flag for the start command in cmd.exe though: Start - Start a program | SS64.com
If it came down to it you could always invoke RunAs.exe with params using start, and which would also enable you to use the /WAIT flag too. If Shutdown.exe was working too fast, you could, create a script to call shutdown -a on shutdown, and create your own shutdown timer before the system would shut off.
Just little tricks.