I have a 'Main' pipeline which calls two child pipelines, main pipeline goes to success everytime when executed. Both child1 & child2 pipelines are calling copy data activities, for child1 pipeline, to introduce a failure, I changed the datatype of one of the columns of the table where the data is copied, ran child1 individually and child1 fails. when I ran Main pipeline, which calls child1 and child2. child2 is called upon success of child1. In main pipeline child1 goes to success and calls child2, both got to success.
At this point the execute pipeline works on "fire and forget" principle , but if you set the "wait on completion" flag , you will achieve what you intend .