This is so that we can ensure that we only execute jobs from the most recent session, and only if that session is not yet ended. We need a way to scan through all the messages and load them into the state machine without dispatching any jobs, then only once we've processed them, go back and start actually taking actions for only the most recent session. Otherwise, if you missed a session end and are catching up, you'll run jobs you shouldn't.
This is so that we can ensure that we only execute jobs from the most recent session, and only if that session is not yet ended. We need a way to scan through all the messages and load them into the state machine without dispatching any jobs, then only once we've processed them, go back and start actually taking actions for only the most recent session. Otherwise, if you missed a session end and are catching up, you'll run jobs you shouldn't.