I recommend debugging the microflow and seeing if that open form activity is called multiple times (perhaps the microflow is called in a loop?)
Based on comments in your original question:
That situation would result in an infinite loop indeed, the data source microflow definitely shouldn't open a new form again. Also I don't think you should actually make a new object in the data source microflow as this would create new objects every time. The idea of the data source microflow is that you retrieve the related object for your nested dataview in some way.
So in your form opening microflow you could create (and commit) the promotion object and then in your form you can use a data source microflow to retrieve that object, or alternatively use a path to fill the nested dataview (but this might not be possible depending on how you set up your domain model, this can only be done if an Employee can have only one Promotion)
Also see the dataview documentation and check the data source properties.
I tried the debugger, it opened with every popup in a new window, as if there was an infinite loop. However there is not a single loop in the entire project.