It's not that complicated. And, on second thought, it would be better and easier to use a timer.
On click start -> change value, stop any running timers, start timer for 0.5s
On timer event -> and if user still holding the button -> change value, restart the timer for a slightly shorter time.