При mousedown запускаем таймер (
1,
2) который периодически запускает функцию. С остановкой сложнее: пользователь может, не отпуская кнопки мыши, перенести курсор вне кнопки и отпустить - mouseup не сработает. Это тоже надо продумать.
Еще можно сделать, что бы при первом клике кнопка нажималась, при втором - отжималась.