Compute remaining time step given remaining time and current iterations. The last iteration (limited by MaxSimulationIterations) always returns the remaining time, which may violate MaxSimulationTimeStep. The remaining time step to use for the next sub-step of iteration.