Batch Fitting Runner
Synchronous batch driver: runs each entry of a FitSpec.Batch through FittingRunner, collecting successful results and capturing per-dataset failures so the batch completes even when some entries fail.
Like FittingRunner, this layer does no async control or event emission; the async session wraps it (in a later phase). Callers (CLI, tests) can use it directly.
Functions
Expands a configuration whose data source resolves to many datasets into a FitSpec.Batch that shares the analysis configuration. The source is imported once and each dataset is materialized as a single-dataset Inline source named after the dataset, so re-running each entry does not re-read the original source.
Runs each entry, returning successful results in submission order and a BatchFailure for each entry whose fit threw. Cancellation exceptions are not swallowed.