async fn await_control_rpc_or_lifecycle_close<T>( lifecycle_rx: &mut Receiver<()>, operation: String, rpc: impl Future<Output = T>, control_rpc_timeout: Duration, ) -> ControlRpcResult<T>