notice if there is no longer an USB device present and ...

try to recover from the error. No longer ignores the return value when
sending control messages to USB devices.
Tries now to reopen the USB device if it had an error. Basic scenario
where recovery should work is unplugging and plugging the device again.