ok tested a bit more.
If everything is fine then:
this._socket.Poll(1, SelectMode.SelectRead) -> = true
this._socket.Available == 0 -> = false
But when the exception is thrown (because of massive parallel calling of IsSocketConnected) then
this._socket.Poll(1, SelectMode.SelectRead) -> = true (OK!)
this._socket.Available == 0 -> = true (NOT OK!)
Hope that helps!