I just reloaded from an image from about this time last year (it was my fault, not Windows' 🙂), and it was up to date in less than 20 minutes after the reload, and most of that time was spent installing .NET updates. Such a backup is well worth eating some gigabytes for, if you don't want to have a useless system for too long, due to needing to update it over several reboots.
For a new install, get VC++ runtimes (32-bit and 64-bit), latest video and network drivers (if needed), DX runtimes (if needed), standalone .NET 3.5 and 4 (I like to get the full ones, since some applications need that), and SP1, on a thumb drive. Being able to go ahead and install that stuff right away makes a big difference in update times for new loads.
Also, I wish MS would make optional DLs like the VS and DX runtimes optional Windows updates, to make it easier.
There's Autopatcher, again, but it saves much less time than it used to, so I haven't used it in some time.