The biggest problem I see with both rules is that you have a conflict between your "Wait" events and your "Trigger" events. If you weren't aware, waits are cancelled any time the rule re-triggers, so you've got two event subscriptions here (assuming your rule got to the "Wait"), and it's likely a toss as to which will execute first, which could give unpredictable results (likely undesirable in either case).
For your second rule, the solution looks easy: just trigger with "on" instead of changed," then eliminate the
IF that checks the switch state--you'll already know it's on, otherwise it wouldn't have triggered. The "Wait" should still work as you expect here: the subsequent actions will run either when the switch turns off or after 2 hours, and there is no longer any conflict (but the whole thing will start over if the switch is turned on in the meantime).
I didn't look at your first rule as closely, but you'll have to rethink it to avoid this conflict. If you aren't sure, it may help to describe your goals, and someone could suggest a rule that might work. Good luck!