Yeah, this is right. However, it's the actions running multiple times simultaneously that is the source of the problem. The app has no way to know that it's been invoked multiple simultaneous times, which can happen during the delay period when the rule isn't even running (scheduled job invokes the app when the delay ends, picking up where it should).
This particular error is happening as the app's state gets corrupted by a second instance going into the IF-THEN block (or coming out of it) while the first instance is delayed within the same IF-THEN block.