Have you considered using the Workflow library? If you have and don't think it's suitable then have a look at something I hacked together something a while ago. It might serve as a jumping off point for you.
ΝUnit Inspired Task Runner[
^]
As outlined the code builds fixed order sequences of tasks and it doesn't give you priority or interrupt handling so using it as it stands would reduce to creating task sequences each containing a single tasks. I don't think it should be too difficult to extend to achieve what you want.