Logs would have been helpful, but I set up a test rule similar to your rule and can duplicate what is likely going on with your rule. It looks like the 'stays that way' timer keeps counting as the two triggers alternate being true.
I set up this rule:
In the logs below you can see that as I turn the outlet on and off, the time is counting down from the first activation.
So once your rule triggers on the first state change of the contact, the trigger will stay true and the notification will fire 10 hours later. I don't know if this is by design, or a bug. I can see how you would expect it to count each of the 'stays that way' timers separately.
I'm leaning towards 'bug', or at least, very un-intuitive results based on another test I just set up.
I changed the rule to use two different devices... "Outlet 1" and "Pantry Light", both with 'stays that way' timers. It should trigger when the pantry light stays on for 30 seconds or the outlet stays off for 30 seconds. Common sense would say that if either condition is true for 30 seconds, the rule should trigger, independent of whether the other condition is true.
The logs show that once the timer starts for one device, if the other condition goes true and then the original one goes false, the timer stops and the rule is not triggered.
The rule started a 30 second wait on the pantry light being turned on at about 11:49:06
I then turned off Outlet 1 around 11:49:20. That made that part of the trigger go true, but rather than counting down 30 seconds for that individual trigger, it shows it is waiting :16 seconds (based on the Pantry Light on time).
I then turned off the Pantry Light at around 11:49:30 and it logged that it didn't trigger due to that condition not remaining for 30 seconds.
However I would expect it to trigger at around 11:49:50, when the outlet had been off for 30 seconds. It did not.
So using multiple 'stay that way' triggers seems like a bad idea as they currently function.
The example posted by @KurtSanders looks like it should work for you.
EDIT: tagging @bravenel for his thoughts on whether multiple 'stays that way' timers are intended to work this way.