On non-Linux platforms, WaitMany monitors every socket for exceptional conditions, even when we are not looking to read from it. On Linux, it never monitors those.
Monitoring for certain socket events on some platforms but not others is inconsistent and surprising. In this instance it probably means these cases receive less testing as well, since they are ignored on our most well-tested platform.
Fix this issue by only monitoring for exceptional conditions (which is necessary to detect failed connection attempts early on Windows) for sockets we are also waiting to read from.