Hi David,
this was just a quick shot.
Anyway: removing what David (Azariewicz) claims to be the problem obviously did not help.
To be honest, I also doubt that the USB audio drivers do not conform to the spec.
What had been in the code before and what I now removed is not only backed by the usb audio spec (in fact, the usb audio 1.0 spec mandates it under certain conditions) but also by the libuvc implementation (which I worked on in the past) which does the same (from an application level) after it has stopped streaming to a UVC compliant video device: to set the alternate setting of the audio (or video, in case of libuvc) streaming interface to 0. The speciality of alternate setting 0 (compared to alternate settings >=1) is that it contains no endpoints which is odd (but hey, that`s what the audio 1.0 spec specifies !) and serves the purpose to release any bandwidth if you do not stream data.
Needless to say that libuvc was ported from Linux, so obviously, it works under Linux and very likely also for USB3, otherwise somebody would have complained. And it works under OS/2, at least when I only use USB 2.
I am out of ideas.