How do I diagnose Hang on Shutdown?

You need to shutdown without the splash screen, and from the command line to see what's going on. First you need to disable splash via GRUB (See verbose shutdown)

Boot and hold SHIFT to enter grub. Press while over the linux entry to edit it. Then go to the kernel line (press END to go to the end of the line) and remove the "quiet" and "splash" arguments. In fact, for this one test skip out the GUI al together and add the argument "text". (Without this you can get to the command line with CTRL+ALT+F1)

Login, then type:

sudo shutdown -v -h now

(-v for verbose, -h for halt.)

Kernel log files in /var/log/kern.log should contain human readable time stamps. Open them with the log file viewer

gnome-system-log

(File>open) And you should see the human readable time stamp on the left. If you still don't see the human readable ones, this guy made some python/perl scripts to parse them.