QuickFIX 1.13.2 and onwards have a fairly serious bug: While the engine is trying to connect to a host, it's not servicing other connections. If the host is on a network that has suddenly gone dark (which happened to us yesterday), WinSock can take about 25 seconds to time out. If enough failing sessions go to the same network, the resulting delays on all other lines are enough to cause the counterparties to hang up.
This happens with the SocketInitiator. I tracked the behavior to commit #2159, which also deals with timeouts. I found a pretty effective way to test this behavior is to set up several sessions to an invalid host through a null route (http://en.wikipedia.org/wiki/Null_route) and then see if other valid sessions connect properly.
I don't know if switching to ThreadedSocketInitiator would fix the problem for us. I'll be sure to try that if I can't figure out how to fix the bug itself. I'm sure I can produce sample C# code if needed.