StreamReader.ReadLine でブロックしている際に、別スレッドから Close を行うと
ReadLine は IOException とかを投げ返してくるのですか?

それと関連して、TcpClient から作成した NetworkStream を StreamReader で包んで、
同じように ReadLine でブロックしている際に TcpClient.Close を行うと
IOException (or SocketExceptopm) が投げられるのでしょうか?

とりあえず、ブロックが解除されればいいのですが……