Okay, when we start to play with that, we should also refactor middleware (see PR comment). I guess something like `TaskRunExecution` which takes a `TaskRun` in the constructor would be okay...

I just wasn't every much a fan of the two definitions of `Task`, of course now we don't have any :)