Let us be honest: sometimes you have to patch your servers :)
And sometimes you are doing it in the wrong day. May be your karma is wrong, or may be stars were not aligned, or may be you hasn't been worshiping your gods properly before THE PROCESS :)
However I have to admit I haven't seen heavily broken servers after regular 2nd Tuesdays for quite a time.
But the message "Preparing to configure Windows..."
happens from time to time. And my experience says if you are staring at this message longer than for a minute - keep on reading.
So when you see the message "Preparing to configure windows..." and server "hangs"/refuses to restart please keep yourself from pressing reset button (you're never sure if your DBs will be consistent after that).
Take services.msc instead and connect to the computer in question (it is connected to the network and you have computer to connect from, right?). Chances are you will see the following picture in Services MMC snap-in:
It is clear to you now? Server is simply waiting for a process to finalize. In vain it seems...
Let us help it to reboot in a kind way then. We'll need pskillfrom Sysinternals suite.
Pskill takes PID or ProcessName as input (and ComputerName), and in our case knowing that process name is TrustedInstaller we can kill process directly (optionally we can usepslist to find PID of troubling process and issue pskill by PID):
pskill \\server TrustedInstaller
After the process is killed server will proceed with "Stopping services..." message and reboot.