Entonces, otro día de depuración y finalmente tengo una explicación.
1) Los Saeas no estaban disparando el evento completo porque no pudieron enviar más. Wireshark revela que esto se debe al vaciado de la ventana TCP. (Tcp zerowindow)
2) La ventana TCP estaba vaciando porque la capa de red estaba pasando un evento por la pila que tardó demasiado en completarse, es decir, no hay productor/consumidor entre la capa de red y la interfaz de usuario. Por lo tanto, el OP de red tendría que esperar el dibujo de la pantalla antes de enviar el ACK.
3) El evento que tardó demasiado fue un sorteo de pantalla en un controlador de eventos en la GUI. La plataforma de prueba era una ventana de consola (una que resumía los mensajes entrantes), por eso no causó un problema a una carga mucho más alta. Es normal no volver a dibujar la pantalla en cada mensaje, pero esto estaba sucediendo porque el proyecto aún no ha terminado. La tasa de redibujado se habría arreglado más tarde.
4) La solución a corto plazo es simplemente asegurarse de que no haya GUI manteniendo el espectáculo. Una solución más robusta podría ser crear un productor/consumidor en la capa de red.