Add some tests around futures & cancellation (found a bug!), and add in
the executor per stage proc pipe