A batch finished. The carried BatchFitResultData holds the complete per-dataset result graph for every dataset that fit, plus a BatchFailure for any entry that threw — a batch completes even when some datasets fail. Whole-batch failure or cancellation use Failed / Cancelled instead.