If I had to guess, and that's all I can do since everything else looks correct except the oddity you note, this might be some sort of race condition due to your rule being triggered twice in a row about 300 ms apart. That is quite fast, so you are likely dealing with concurrent/re-entrant execution, which can cause problems. (It already looks like
now from the second execution is getting set before the
IF THEN from the first is even reached, though that shouldn't cause this particular problem.)
What is triggering this rule, and is there anything you can do to prevent that from happening? (I'm guessing not and that's why you have a rule like this in the first place, but it's worth asking...) If not, I might see of some alternative fares better--perhaps a required expression instead of a conditional in your actions. But addressing this on the device side, if possible, is likely to be the best idea.