async fn join_senders(senders: JoinSet<Result>) -> Result
Join the sender workers, stopping the rest on the first failure or panic.