I already have a working implementation similar to what you describe.
My issue was this...
If you press a button and have it change color in a standalone macro, it will change back to the default color after the execution of the macro regadless of the last color set in the macro.
If you want the pressed button to change color... say from red to green (and stay green) to indicate a power state... without changing to another page, it will not not work that way as far as I have found.
You can, however, change the color of other buttons without defaulting back to the page color or changing pages.
This seems very odd to me.
In my configuration, a press of the power button will power the zone on (plus select input), flash green for a few seconds and then return to the default color. A push and hold of two seconds will power off the zone and flash red before returning to the default color. I would prefer the button to either stay red or green to indicate status (one way workaround I realize).