Here is updated demo project. It's using new ChibiOS USB API now.
1- In order for this to become a more general demo, use differen endpoints for audio stream output and feedback, because while it's totally OK to use a single endpoint working bidirectionally as you do, the USBv1 peripheral in devices other than the STM32F4 family can't do bidirectional isochronous. It's an inherent limitation of the peripheral.
Done, feedback moved to EP2.
2- Use a GPIO and a scope and display your data pump execution time. You'll be surprised. chIQReadTimeout is awfully slow, in fact, in my tests on a STM32F072 @49.152Mhz (yes, slightly overclocked) it takes >1ms for each 192 byte packet (48 samples, 16 bit, 2 channels) which means it can't cope with the actual data inflow. It's a no go. You probably got away with it because you're running a much faster STMF4.
Fixed, USB driver is writing directly to I2S buffer. Now you can enjoy nice dubstep-like effects when buffer is underruning often (shouldn't happen if your host supports async USB audio).