Dataset Max Failure Rate Exceeded Exception
Thrown synchronously by StageScope.iterateDataset after the loop completes, when the observed per-item failure rate exceeds the configured threshold. Carries the structured cause (rate + threshold) so the recognizer can describe the abort without parsing a string.
Recognized via a dedicated branch in analyzeTrainingFailure that maps it to FailureKind.EXECUTION_ABORTED. TODO: Complete the failure-rate feature. The threshold is already a session setting (TrainingResources.datasetFailureRateThreshold), while the behaviour on a breach is fixed. What is left: a session-level policy that unifies this record-only failure with DatasetFailureRateExceededAbortException, the early stop that trips as soon as a breach becomes unavoidable (inside GEPA today), a threshold for the evaluation phase, and skipping the phases a breach has already invalidated.