You can do this with RM--you just have to use a variable to track the current point in your cycle or do something like the above to evaluate the current state and act accordingly. You can find a few examples on the forum of people trying this. It's usually something like a local variable, then rule actions like:
Cancel Delayed Actions
IF (actionNumber = 1) THEN
// Do thing 1
ELSE-IF (actionNumber = 2) THEN
// Do thing 2
ELSE-IF (actionNUmber = 3) THEN
// thing 3
END-IF
Set actionNumber to actionNumber + 1
IF (actionNumber > 3) Set actionNumber to 1
Delay 0:00:15 (cancelable)
Set actionNumber to 1
If you don't want to "reset" the counter after 15 seconds or whatever, you can skip the first action and the last two actions.
I also wrote Dimmer Button Controller to do more or less this--I wanted to emulate the behavior of a Hue Dimmer on a Hue network on Hubitat with any button device, including a Pico. Advanced Button Controller, another community app, can also cycle through Hubitat scenes (in alphabetical order) with certain button actions.