A little searching turns up a decent explanation:
An immediate solution is to flick the switch:
echo "-1" > /sys/bus/usb/devices/5-2/power/autosuspend_delay_ms
Unfortunately a USB device comes and goes and won't always be "5-2" making it inconvenient to script.
Now tweaking the module config might seem a solution:
echo "options usbcore autosuspend=-1" >> /etc/modprobe.d/usb_suspend.conf
But it didn't work. I'm guessing usbcore is compiled in and needs a kernel parameter passed.
To be continued...