Então, consegui emprestar um dos Macbooks do meu colega e instalei o Wireshark nele.
Monitorando o tráfego HTTP, vejo as trocas de upgrade do websocket esperadas ocorrendo, e, em seguida, , percebo que os pacotes de redefinição RST do nível TCP foram enviados do servidor. Depois disso, a estação de trabalho cliente deve iniciar uma nova conexão HTTP e atualizar o websocket novamente. Que eventualmente acaba em outro RST do servidor.
Ao tentar comparar a situação na minha estação de trabalho Windows, descobri que a pilha de rede automaticamente distribui pacotes ACK de manutenção a cada 3-5 segundos para o servidor . Parece que a pilha de rede do Mac OS não percebe que a conexão HTTP existente foi atualizada para o websocket e, portanto, não se preocupou em fornecer os pacotes ACK necessários para informar ao servidor que ainda está ativo.
Para resolver isso no Mac, escrevemos nosso cliente para enviar periodicamente dados "ping" para persistir a conexão com o websocket.