If it's just these two triggers, you could make a few boolean variables and use them to determine if you should show the dialog now or after a button from the other dialog was clicked. Something like this:
-
PathsPLx
-

Events
-


Unit - A unit Gains a level
-

Conditions
-


(Leveling Hero) Equal to PLx
-

Actions
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




DialogAlreadyDisplayed Equal to True
-



Then - Actions
-




Set VariableSet RunPathsPLxLater = True
-




Skip remaining actions
-



Else - Actions
-


Set VariableSet DialogAlreadyDisplayed = True
-


-------- Rest of the trigger where you create dialog buttons, etc. --------
The trigger above will check if the DialogAlreadyDisplayed is True - if yes, it will set RunPathsPLxLater to True and end the trigger, so no dialog for the PLx unit will be shown at the moment. If DialogAlreadyDisplayed is not True, it will set it to True to prevent the dialog for DLx from showing.
The trigger for DLx should be set up the same way, just use RunPathsDLxLater variable instead of the PLx one.
In your trigger(s) that react when you click a button from the dialog created before, you do whatever you do now and at the end you also add this:
-
Actions
-

-------- At the end, when dialog button for DLx was clicked --------
-

Set VariableSet DialogAlreadyDisplayed = False
-

If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-


If - Conditions
-



RunPathsPLxLater Equal to True
-


Then - Actions
-



Trigger - Run PathsPLx <gen> (ignoring conditions)
-


Else - Actions
So the above assumes that you clicked on a dialog button for the DLx unit. You do something and at the end you check if you should re-run the PathsPLx trigger via RunPathsPLxLater variable.
If yes, you run the trigger - ignoring conditions. This should work in case like this, because the actions in those triggers do not seem to have anything to do with the units themselves and the player is also static.