Push executor lifecycle issue out of runner, +comments
Consolidate callback logic and use optional output
Comments
Turn workflowrunner into interface with one implementation