Several possibilities.
First, a known issue that can cause this. Go to Control Panel, open system,
go to the hardware tab and click Device Manager. Click the plus sign next
to Universal Serial Bus Controllers. Go to USB Root Hub, you may see more
than one do this for all. Right click this selection, select Properties, to
the Power Management tab, remove the check from "Allow this computer to turn
off this device to save power," and click apply and ok.
You will likely need to reboot and you will still hang the system as the
change has not taken effect. Once you are able to reboot or shut down and
reboot, try rebooting again to see if this resolves it.
Before going to the information below, you may get a hint at the cause from
event viewer. Open Control Panel, go to Administrative Tools, open Event
Viewer, look for multiple instances of errors that have occurred at roughly
the time when you've attempted to reboot. Doublet click a few of the errors
to see what is inside and also to see if the information is usually the
same. The information may lead to the source of the error. You can also
try temporarily taking things out of your startup folder one at a time and
then try rebooting as sometimes something in the startup folder is the
source of this issue. Also, try turning off your Exit Windows and Start
Windows sounds. In Control Panel go to the Sounds and audio devices applet,
go to the sounds tab and set the above to none and see if that resolves the
issue.
If not, this issue can also be caused by an IRQ issue. Many cards can share
IRQs in XP and sometimes some of them balk, most notably, network cards.
The only way to change the IRQs of your cards is to open the case, remove
the cards and place them in different slots. You may have to do this a few
times to find the best arrangement for your setup.