Completes once the socket stops: closed by close, or lost. Its value is the error the socket stopped with, if it had one.
Future<Object?> get done => _done.future;