Get a list of processes?
Well here's some more thoughts. What about getting a list of running non critical processes then killing them before shutting down just to see if it results in a faster shutdown just for test purposes?
You could do that using UVK. I've tried it on my own machine.
Here's the idea:
Right click UVK desktop icon and choose "Run as administrator" then use the Process Manager. Select "Hide critical processes" and select "Kill all with same path" and then highlight the first process in the list and hold down "Ctrl+A" and a filter opens up.
Then choose "Kill all non critical processes"
It will kill everything in the list and you'll most likely get an "Explorer has stopped responding" message. Ignore the option to restart Explorer and just shut down. Does it shut down any faster?
If so it does point to a software issue.
Then consider using the "Scan and create log" option.
If you inspect the log take a look at Global Context Menus (Folder, File) and check for updates for any software that has installed a right click context menu entry (shell extension that integrates with explorer) and also check for any entries that can be removed.
In the same log check services for any additional service that doesn't need to be running. Same goes for drivers.
It's possible that you will spot enrties in the log for software that you have uninstalled. It's possible to write a script to delete those if needed.
UVK - Ultra Virus Killer - Beta version not recommended.