I have been experimenting with SetLight for several hours, trying to grasp exactly what is happening. It's extremely frustrating, since there is no direct way to test or debug other than deploying a test skill over and over... anyway...
After a lot of experimentation, I've discovered that a long "buttonUp" animation (say, 10s) continues running even after the next response from my skill comes back. So when I respond, I overwrite both the "none" and "buttonUp" values, but the previous buttonUp continues to run to completion before the new settings take effect. Is that expected?
What I'm trying to do is effective STOP the "none" animation from running by masking it with a long buttonUp. But if the buttonUp continues to run even after I deliver a new "none" animation, that doesn't work, either.
I believe the API really needs a way to stop/cancel a running animation, either on button press or when a new response is received. Otherwise behavior is just so limiting that it's tough to develop interesting use cases with the buttons other a buzzer for a game, which is boring.