In a similar vein, in the shutdown script you could just force the hub out of host mode (or programmatically force a reset of the device through it's ioctl). My board has a has direct control of the power out on the USB so when I need to restart I force the USB off ... I had included it to save power but it works for this as well. I think you could do it via /sys/bus/pci/... /power/control but I never had the patience to work it out.
Hope this helps point someone in the right direction.