So, the way I would debug this is to simplify and be sure that key parts work as expected, or not. For example, I just created a simple set of actions, like this:
The rule "thermo off" turns off the thermostat called "virt therm". My goal here is to verify that the Wait for Condition works as expected. Here are the logs from it running:
These show that everything happened pretty much as expected, although the thermostat state turned to off before the Wait for Condition even had a chance to wait. So next, I'll intentionally delay that happening in the rule called "thermo off" so there is a real check of the Wait for Condition working correctly.
Here are those logs, again with everything working as expected:
Then I'd move on to test the next part of your rule, but I can't tell what it does. Presumably CoolSetpoint and HeatSetpoint are global variables. What does "Thermostat SetTemp" do?
Why are you doing this in such a convoluted manner? Why are you using a separate rule to turn off the thermostat, instead of just turning it off? Same question wrt setting its setpoints? Why introduce all of the waiting for it to be set? Why the Stop Actions? There is nothing to stop.
What are you actually trying to accomplish? It appears that you want to turn some things on, turn some things off, and set the thermostat. Is that not just directly possible?