I agree in principal with your expectation that 1 should precede 2.
However, the behavior you describe is caused by existing limitations of the dependency analysis algorithm at the heart of our runtime, which put an emphasis on process dependency (thus the solution suggested by Darek) and do not handle certain situations such as the one you demonstrate (in which execution order seems arbitrary), for the sake of performance.
Note that you can view the results of the current dependency analysis algorithm for a given model by right clicking the model in the editor and selecting Analyze Dependencies.
I've added a feature request #203.
For best results, use the Firefox browser..