Starts a run with plan from its first eligible step. state is up to date by the time this returns. You can call it from NotStarted or a terminal state. It does nothing while a run is already in progress.