pub async fn startup_connect<T, E: Display, F: FnMut() -> Fut, Fut: Future<Output = Result<T, E>>>( label: &str, attempt: F, ) -> T