Acho que encontrei uma resposta. Resolução do temporizador do Windows. Como padrão, é configurado para 15,6mS, embora programaticamente possa ser alterado. Video LAN configura para 5mS, outros programas também mudam (Kodi 1mS, Firefox 1mS por exemplo).
Se algum desses programas estiver em execução, as gravações serão boas, senão ruins.
Como teste, escreveu um aplicativo de diálogo para alternar a resolução do timer entre 15,6mS e 1mS. Toda vez que foi ruim em 15.6mS, bom em 1mS.
Então, acho que essa é a causa. Provavelmente os receptores USB (ou algum buffer) são pesquisados e a resolução não é boa o suficiente para garantir o polling regularmente. A resposta completa, portanto, é para a gravação s / w para aumentar a resolução durante a gravação, o trabalho é para se certificar de que algo que faz para cima é executado em segundo plano.
Uma resolução de temporizador de 1 mS é uma pequena sobrecarga (potência e CPU), mas necessária neste caso. Embora possivelmente menos que 1mS seja suficiente - o Video LAN faz o trabalho em 5mS.