@neonturbo I took your advice just sat down until I figured it out. It took a bit of trial and error, but here is where I landed so far.
Triggers are still the normal M-F @ 5:30 or pushing a virtual button (button 1, in this case). However, played around with variables, device states, and conditions until I hit on a combination that seems to work.
First, I created a local boolean (bool1) with an initial value of FALSE.
Then I evaluate my conditions to see if the rule should run or not. My virtual button stores the value of the last button that was pushed. If that button was #1, bool1 is set to TRUE. Basically, this condition will ALWAYS be true if the button is what triggers the rule. However, it may also be true in other cases...more on that later.
If the first statement is FALSE, the rule evaluates the second condition. This is a virtual switch that I can put on my dashboard. Switch ON will also set bool1 to TRUE.
The next portion of this rule a simple IF-ELSE that writes a log entry to let me know if the conditions are behaving as expected.
And at the end, there are two actions to "reset" the conditions of the rule. The first is fairly self-explanatory and just resets bool1 to FALSE. The second part needs a bit of explanation.
The state variable "pushed" of vButton stores the value of the last button pressed. Maybe it was 2 seconds ago...or maybe it was 2 weeks ago. So if I press button 1 on Sunday when I wake up at 7 a.m., the value of "pushed" will still be 1 on Monday. If Monday is a holiday and I've turned off my "Workday Alarm" switch, the first portion of the IF statement will still evaluate as TRUE and the rule will run. So, I added an action to change the "pushed" value to 0. That means that the first IF statement will only result in a TRUE condition if the button has just been pushed.
A possible downside is that the rule could be triggered and run multiple times in one day. One work around for this would be to move one or both of the "reset" actions at the end of the rule into a separate "End of Day" rule that resets things at midnight. I have a rule like this already but decided to keep this logic here for now. I can move it later if I need.
Right now the rule is just making log entries so I can evaluate it over the next couple of days. If it behaves, I'll start putting in some real actions.
[UPDATE]: As I've been thinking about this, I think using a virtual switch instead of a button for a manual trigger would be a better fit. Then I could evaluate the switch position for the first IF condition and simply turn it off at the end of the rule. The logic seems cleaner in my mind and it would have the benefit that I could trigger the rule from Alexa by turning the switch on. As I said, I'll see how it works over the next few days and post an update.