Actually the best way would be to able to express the actions on the time axis instead of the node axis, like this:

    phase("do stuff") {
      runOn(first) ...
      runOn(second) ...
    }

    phase("do other stuff") {
      runOn(second) ...
    }