I've noticed when installing large pieces of software on Windows (Visual Studio, SQL Server, Office, and things of that nature) the installer tends to hang for large periods of time at or near 100% CPU use with little disk activity. What is it doing during these periods? Why in the world would an installer have large (taking sometimes a quarter or half an hour to run) sections of code that are CPU-bound?
All of the applications you mentioned are Microsoft properties, so I imagine that they come in Microsoft Installer (MSI) packages.
MSI installers are notoriously slow. The guy who wrote this rant says
Instead of running a program to simply install and let it be done with, it examines the state of your system, then examines the state of the database that is the program's installer, then does a series of overcomplicated calculations about how to reconcile the two.
I'm not in a position to refute or confirm his assertions but they pretty well match up with my own observations.