When a laptop is on the docking station, booting into Windows hangs. If they take it off the docking station, booting works perfectly fine.
Windows just sits and spins in the Windows boot screen. Mouse sometimes works. Boot works fine off of the docking station.
When the laptop is connected to the docking station, the graphics card grabs a ton of worker threads during boot. We sit and wait for a worker thread to be available to start the agent and driver.
But the graphics card never releases any threads, so we just sit forever, halting the boot process.
The key to resolving this issue, is to give Windows more worker threads to work with. So that the card doesn't take all of them. This is done using a registry key.
Change the registry key AdditionalDelayedWorkerThreads to a decimal value of 32 (instead of the default 10). This can can be located in HKLM\SYSTEM\CurrentControlset\Control\SessionManager\Executive\
If the key does not exist (Like older operating systems like XP) It can be created in the same spot for the same results.