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

Should supersede #3 and #5.