>>935
・バッファに書き込んだ量がバッファと同じかより長いときにバッファの拡張処理って、バッファオーバーフローでも期待してんの?
 SslStream.Readに渡すバッファと、読み込んだデータを貯めこむバッファを分けるとかしとけ。
・TcpClient.AvailableってSSL使ってる時に読むものではないだろうし、そもそも終了処理に使うものでもない。
 読み込みのほうが早くてバッファが一時的に空になれば何時でも0になる。Stream.CanReadとかTcpClient.Connectedとかだったかな。

ストリームなんだし、その接続上で次の作業が出来る状態ならSslStream.Readで止まるのは正常。
受け取った内容を見てメッセージが揃ったら処理を行ってから次の受信をするとか、
自動で切断するような要求にするとかしとけ。具体的に何の通信してるかしらんからそこら辺までは知らん。