1) Add an object of type ExecutionContext to JobExecution with a public getter
2) Persist this automatically in a logical way in the repository (i.e. do some minimum logic to ease the risk of naming collisions with lower-level collaborators)
3) Retrieve this automatically in a logical way from the repository
The idea would be to allow inter-step communication (1) while preserving restart logic (2,3).
I know this has been mentioned and discussed before - just created an issue for it so there's an official record of it and someplace comments can be directed.