...
The names used for these classes could easily be changed, and it is not clear if any / all are needed. To be discussed.
Possible Modifications
principal_performer should be on Task or Task Group?
How to handle context-switching?
idea of principal responsible?
Other
Alternative to single Task Plan 'definition': setup, main, cleanup, all of type TASK_GROUP - would address task plans with that kind of structure, and make repetition clearer.
...