Right now ExecutionStages are held by stage_key which is `(query_id, stage_num, task_num)` They can be discarded if: - [x] We have executed all partitions in it and do not need it anymore (#108) - [x] It gets orphaned because a node higher up in the plan died and never requested the data. Having a timeout clean this up is appropriate (#96) Some prior art here: https://github.com/datafusion-contrib/datafusion-distributed/pull/70