Sua avaliação da funcionalidade TCP keepalive no Windows como o Linux está correta.
Você pode manipular os parâmetros de registro relacionados a keepalives de TCP o quanto quiser, mas, a menos que o aplicativo use setsockopt()
para solicitar keepalives, nenhum será enviado por padrão.
Se você quiser ver o keepalive em ação no Windows e não quiser escrever código, marque a opção "Ativar keepalives de TCP (SO_KEEPALIVE)" nas propriedades "Connection" no PuTTY Cliente SSH / TELNET / etc, inicie uma conexão, deixe-a ficar ociosa e cheire o tráfego. (É o primeiro aplicativo que eu poderia pensar que eu sabia que poderia ser configurado para usar SO_KEEPALIVE ...)