USBはシリアルと言いながら実際パケットを送ってるからタイミングが微妙なんだよな
その都度無駄なやり取りが発生して即応性もなくなるし複数の送受信がまとめられてたり

デバイスずっと常にデータを送り続けてる状況を作るとか言う手法があるけど
C#向きではないかなと