fn gave_up<T>(what: &str, why: impl Display) -> Option<T>Expand description
Report a read the main thread never answered and degrade to None.
why distinguishes the cases on its own: a RecvTimeoutError says
whether the wait timed out or the task was dropped, and a dispatch error
says the event loop is gone.