It’s more for parallel execution of complex IF statements. I don’t have a specific example, but think of something along these lines:
IF door#1 opens
Then if someone’s presence changed to away, then turn off a bunch of lights and close a garage door
Then if someone’s presence changed to present and time is between sunset and sunrise, then turn on a bunch of lights and open a garage door, else open a garage door, and if time is after 6pm Turn TV on in the family room
etc.
IF door#2 opens
Then turn on a light
If the two are run synchronously, when Door#2 opens it will trigger the piston to execute top-to-bottom, burning up time on the first IF block. By the time the lights are turned on from the Door#2 block, there would be a perceivable delay.
If the two are run asynchronously, when Door#2 opens it will only execute “Then turn on a light”. Furthermore, if Door#2 is opened while the IF block is already running for Door#1, it will execute immediately rather than waiting for the other IF block to complete.
Hope that didn’t make it even more confusing?! lol