STM32F4 taking 2 minutes to enter DFU
Make sure you are not using the same VID:PID pair as the bootloader. This would confuse operating systems resulting in a wrong driver assignment.


  We have also implemented a 'jump to bootloader' routine within our main application, which shuts down various things before jumping to the internal bootloader


You want to disconnect on the USB bus properly befor jumping to the bootloader. The easiest method is to reconfigure the USB pins in GPIO mode and drive them with a low output for one second, then start the bootloader afterwards. 

Now the OS will see a new device once the bootloader activates USB again, since the one second with both bus data lines down was detected as device removal.