Rewrite execution code to only terminate once all pipelines run, catch errors, correct return value

Should supersede #3 and #5.
Note that even with `take(1)` the Gaze are started, hence the need for the `process.exit(0)` below. But at least we can do it on stream completion.