How do you diagnose a Windows PC that hangs on shutdown?

Go to administrative tools and look at event logs, Look at the system tab and after sorting by date and time, find the last message before reboot.

Another more efficient way would be to first shutdown the pc, Look at your watch/clock/time piece at the point you think it has crashed, then reboot, look in the event log, in the system tab, sort by time then carefully read through the various processes that are being shutdown. The error message should be there.

If you are lucky, it might be a "pre-explorer-shutdown" (my own coining) process so if you start the task manager before you click shutdown, go to the processes tab, sort by cpu, then click on shutdown in the start watching for the process that is hogging the cpu during shutdown. This is only works if whatever is causing the process to crash is happening within the shell.

Troubleshooting is sometimes more an art than a science.