As per this answer TCP keepalive can be enabled by three registry values. However, setting KeepAliveInterval=KeepAliveInterval=30000 miliseconds and TCPMaxDataRetransmissions=5 definitely does not result in any keepalive packets judging by Wireshark capture.
Should it work at all on Windows 10? Is there any other way to do that on OS TCP stack level? Is it configurable?