There are two issues regarding held buttons. One is definitely latency. The second is knowing a button is being held down. The ST Button capability has a 'button' attribute with defined values for a large number of button events. Release and hold release are not among them, and nor is there any idle / standby / not pressed state. The de facto interpretation of this attribute is that it defines the last button event. There is no standard attribute that says whether the button is currently being pressed or not. There is nothing to stop device handlers using non-standard values, but equally apps have the right to not have a clue what to do with them. Custom attributes can also be used. However it still requires the button to report release or hold release events in the first place. My personal opinion is that it is horses for courses. Dimmer switches for continuous dimming, and buttons for dimming using preset levels.