I start by dumping all of his Minecraft mods, pictures, music, and other files to another system (I hate single-partition configurations). The Windows factory reset completes without a problem (maybe 30 minutes). Norton is removed without a fight. Next comes the first round of updates. I'm on an Exede satellite connection with 10Mbps bandwidth but high lag. There's also a 10MB monthly cap but 12-5am EST is the "Late Night Free Zone" during which data usage is ignored. I start Windows Update just after midnight. There's 112 updates with over 1GB to download. After WU stays at 0% for an hour I have to check the directory size of c:\windows\SoftwareDistribution\Download just to make sure it's doing something. It finally finishes downloading around 2:30am and begins installing the updates. At 3:30am I go to bed because I'm tired of waiting for it to finish (90+ out of 112 updates installed). I estimate it finished around 4:30am. When I check it in the morning it's ready to reboot. It still needs to finish installing the updates during the reboot cycle (about another 25 minutes).
But it's not done yet. Another round of WU checks indicates there's another 500MB of updates to install so I head to the local library to use their faster connection. Another two hours to finish that round (and this excludes the 20+ "recommended updates").
Why did I go through this? Because the free Win8.1 upgrade requires it. The upgrade itself is another 3GB+ download. The library WiFi is free but it has a EULA with a 2-hour timeout (noted they're using IPCop). About an hour into the Win8.1 download it timed out and I had to re-accept the EULA with IE. The Windows Store handled this temporary problem by restarting the download from the beginning. An hour and a half later, just before the library closed, it has finished the download and install and prompted to restart the system. I shut it down (not suspend) and head home to finish.
I power it up and it loads the desktop. Strange, I was expecting the installation to finish during boot. Thinking in terms of "brain-dead design" I correctly surmised that restarting the system would finish the update while shut-down and power-up would not. Another 20 minutes waiting for that to finish.
From my past experience the Win8.1 upgrade required multiple attempts to install intermixed with fixes by the Windows Update Troubleshooter. Every time it failed to upgrade it spent another 30 minutes reverting. While those problems didn't occur this time, when it finally loaded the Win8.1 desktop I was greeted with a Windows Installer crash dialog. Luckily everything seems to be working in spite of that.
Time for another round of updates. Another 700MB+ for 30 or so updates, most of which were .NET Framework 4.5 "optional" security updates. Another hour and a half to install those including a reboot. Then install a few more updates that didn't show up previously followed by another reboot.
I'm going to make a backup image before I continue so I don't have to go through all of this again. I still have to install Firefox, Chrome, VLC, Steam, and anti-malware tools (not that they're reliable).
On this same system Xubuntu 14.04 took about two hours to install over satellite using the Ubuntu Minimal ISO + xubuntu-desktop, libreoffice, openclipart, wesnoth, and a few other games and multimedia tools. A couple gigabytes to download and installed and it was completely up-to-date. The only things I had to do afterwards was create user accounts and install fgrlx and CDEmu from the repos.
I don't have a clue as to why updating Windows was so slow. There weren't any anti-malware tools operating. I removed Norton and Windows Defender was disabled. It's not using an encrypted file system. System Restore probably adds some overhead but that doesn't seem likely to account for all of the problem. The HP crapware load is relatively minor as compared to other systems I've seen - Cyberlink multimedia tools, some free games, and a bunch of links to various services.
There is one thing that surprised me about all of this, other than the Windows 8.1 upgrade not failing this time. The factory reset warned that all files would be erased so I expected to lose the Xubuntu partition. Instead, the reset only wiped the Windows partition.
Update: A Reddit discussion about this article yielded a few ways to improve the Windows upgrade/update process.
A little-known Microsoft how-to article indicates that only KB 2871389 and KB 2917499 updates are required before the Win8.1 upgrade. It's annoying that the upgrade doesn't handle this itself.
There's also a third-party tool, WSUS Offline Update, that can download and cache the updates locally. While it's not much help with single system updates it could be useful if you have an unreliable Internet connection or multiple systems to update and don't want to do slipstreaming.