The functions module now applies time-step restrictions from the functions that are running, rather than from the sub-solver. The sub-solver only exists to be constructed so that its data is available to the functions. It should not affect the solution process in any way.