Called by IterativeProcess machinery for the Observable notification path. Algorithm state is already advanced by runStep() before this is called; nextStep() here is a pure snapshot factory.