User tomfoolery shouldn't impact sublime TCP handling.

Wrap the callback in a try-catch block and throw in a separate event loop run to keep the TCP message array correct even if the user's code breaks.

cc @squamos