I plug the root hub into USB2 port and watch it enumerate correctly.
I disconnect and reconnect the the Root Hub at an accelerated rate (about 2 detach/reattach events per second) and the port stops communicating.
During the lockup the USB port would transition from High Speed to Full Speed and remain there with the bus suspended.
Disconnecting and reconnecting the hub while the lockup is ongoing would cause the host controller to reset the line but return to a bus suspended mode.
I was able to fix this lockup for our particular application by preventing the EHCD from handing over port ownership to the companion controller (UHCD) while attaching to the root hub and a port disconnect occurs. I modified CHW::ResetAndEnablePort() to avoid calling Write_PORTSC() with portSC.bit.Owner set to 1.