Maybe it'll broadcast a message that it is shutting down for a reboot and then seem to keep going about its usual business. When that happens it may be that init isn't able to shutdown some of the processes that is keeping it hung (nfsd, I'm looking at you).
If this happens to you, then try this: "reboot -f" (forcibly reboot, don't call the shutdown script). This will reboot the system without attempting to shutdown gracefully. Some INIT scripts runs a final "reboot -d -f -i" on runlevel 6 when rebooting.
This might save you a trip to the server room.