I don’t know if this matters, but I noticed the control interface runs at only 48MHz, while a common webcam I’m looking at uses 300MHz. I’m thinking mainly about latency here.
What I notice which will have a very high likelihood of dropping frames is the “Transfer Type” of “Bulk”. This is intended for devices such as mass storage, which sends a large chunk of data and then is interrupted and told to wait. For a streaming device such as a camera or audio, you need “Isochronous”. Isochronous transfer will provide a steady stream without the wait periods of the bulk mode. You will not achieve full performance from bulk mode except for bursts. Do you have a way to change the USB transfer type to isochronous?
FYI, a hard drive using bulk transfer has a cache and the ability to wait and block without losing data. A video or audio device should not do this for streaming, as the cache is probably insufficient (or none…implying the only way to handle pausing is to drop data), and even if cache is sufficient, there would be a noticeable jitter or complete halt.