propagate native errors to socket events
fix #25: reconcile error semantics with native resource cleanup and Socket lifetime