Dataset Max Failure Rate Exceeded Exception
class DatasetMaxFailureRateExceededException(val failedRatio: Ratio, val threshold: Double) : RuntimeException
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: Make it an ExecutionAbortException once the behaviour of this failure is standardized and can reuse the abort logic.