O Linux precisa de pacotes uniformes na entrada de áudio USB. Importa quantas amostras de som estão em cada pacote.
Na minha aplicação na amostragem de 8000 Hz, com os intervalos de polling padrão de 1ms de USB "full speed", que medem em média 8 amostras por pacote. Devido a um capricho eu estava enviando minhas amostras agrupadas, 32 amostras de áudio em um pacote, então 0, 0, 0, 32, 0, 0, 0, 32, .... Nada de errado com essa largura de banda, há muito do quarto. O Windows processa bem, mas o Linux bloqueia.
Quando enviei as amostras uniformemente: 8, 8, 8, 8, ... o áudio passou bem. Eu estou supondo que algo em um nível baixo nos drivers de áudio USB no Linux está fazendo suposições erradas. Mas minha solução é clara.