A little searching turns up a decent explanation:
http://www.mjmwired.net/kernel/Documentation/usb/power-management.txt
An immediate solution is to flick the switch:
(as root)
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...