This return value isn't used. Change `TryDrain` to `Drain`.

This will also return true if the connection state changed from connected to something else before draining completes. Even those this might not happen if it is always called inside a lock, it is still incorrect behavior.