possibility to give packaged exceptions to user via OnException; socket destroy callback - untested