Async telnet connection over StreamSocket
I see at least two points.  


if you have a catch to catch a sytem Exception (wich is not good btw., it would be better to catch specific exceptions) and the only action is to throw that exception then its useless to have. If you need to rethrow an exception you should always omit the ex so just throw;, otherwise the StackTrace will be broken.  
Having the public setter of the Status property is breaking encapsulation. Why should a user of the object be able to set this property? You should make it private.