Multithreaded prereq checker
The prereq checker will check a number of "things" on all site systems, including if the OS version is supported or not. However, if you have a large number of remote distribution points across very poor lines this can take many hours. I have recently upgraded a CM12R2 site to 1511. The prereq checker ran for more than 8 hours.
My suggestion is simple, in an upgrade scenario the prereq checker should read the number of packages that distmgr is allowed to process an use the same number of threads to check remote distribution points (or other site roles).
This would greatly reduce the time it takes to upgrade a site.