async fn do_single_regrading(
    conn: &mut PgConnection,
    exercise_services_by_type: &HashMap<String, (ExerciseService, ExerciseServiceInfo)>,
    regrading_id: Uuid,
    grading_futures: &mut HashMap<String, Vec<Pin<Box<dyn Future<Output = GradingData> + Send + 'static>>>>,
    send_grading_request: impl Fn(Url, &ExerciseTask, &ExerciseTaskSubmission) -> BoxFuture<'static, ModelResult<ExerciseTaskGradingResult>>
) -> ModelResult<RegradingStatus>