Capture socket and reader ownership before deferred teardown
When websocket teardown runs asynchronously while reconnect is allowed, capture both the old socket and its reader task before releasing ownership. A socket identity guard alone does not protect a replacement reader if teardown later looks up a mutable current-reader field. An ab…