This is preview!
Click on Join Now to Sign Up
The best solution that I've found so far (which is hacky and may make those actually familiar with USB driver programming smack their foreheads), is to edit src/usb_libusb10.c in libfreenect to restart isochronous transfers that die. After editing, it should read:
FN_WARNING("Isochronous transfer error: %d ", xfer->status);
You'll still get error messages (unless you comment out the warning line, I suppose), and the framerate may be affected, but the streams will at least stop freezing up.