I’ve spent most of the evening testing the suspend function, and I can’t reproduce the situation where it takes a long time to wake up.
Reconfiguring the thunderbolt port can result in pci devices being added/removed, which means you manually need to update the sys-usb device list.
Enabling hyper-threading adds a 5-10 sec delay on waking up the system, but it doesn’t add the really long delay. This seems similar to how suspend works on my Windows system.
With sys-usb/thunderbolt correctly configured and hyper-threading disabled, it takes ~2 sec to wake up the system.
Sadly, I didn’t check the logs when I experienced the slow wake-up, I think some software/OS error happened during the wake-up, and the long delay is a software timeout.
Tomorrow I’ll try and get a dock and see if using the thunderbolt port makes suspend fail.