for the hardware unconnected issue, which I get, I run a scheduled Windows task (say every hour) that runs 'devcon' (available from Microsoft) to disable and enable the usb device. This brings it back to life.
It's a pain but I have leaned to live with it.
If you need any assistance with devcon(basically it does everything device manager does in windows, only programmatically, but it can be a bit tricky finding the deviceID to pass to devcon) send me a message.