fix: win32 tcp_keepalive gets set even when option is -1

Too bad this didn't make it into 4.0.4. Let's make sure it gets into the next maintenance release. I feel bad for introducing the bug in the first place :)