pub(super) async fn surface_task_result_or_pending( handle: &mut Option<JoinHandle<Result<()>>>, ) -> Result<()>