Also, just to clarify, construct never runs anything concurrently, everything is evaluated and executed top to bottom, except with special cases like "start of layout", loops, and functions
And just to add to the "start of layout" thing:
Multiple start of layout events will still run in the order of the event sheet. The ones higher on the list will run before the lower start of layout events. Basically anything that has a green arrow next to it is a trigger, which means that it runs when called, but the order still matters when there is multiple identical triggers.
I know you're probably asking about using globals in this situation as a hypothetical situation to learn more about construct, but in case you didn't think of it, private variables would be better in this case. Each collided pair of instances would have their values set accordingly, and you can use subevents to modify the values without losing the picking.