In order to scale the design and support extensions such as #1617, we will need to redesign how a test transitions from one pipeline phase to the next. The idea is to use buffers in between and the event handlers will be responsible to moving the tasks for queue to queue. Also more events will be needed. All these can also be named in an homogeneous way, so that we could dynamically call the right callbacks and perhaps even move things automatically from queue to queue.