I have no experience with WPF, but I think, that you use the Button-Event "Click" to start the procedure. "Click" is only raised in the time and also only one time. Not whole the time you are using the Button.
I suggest you to use the Event "MouseHover". This event is raised the whole time the Mouse is over the Button.
But I prefer to use "MouseDown" as Event from the Button to set the Bit and the Event "MouseUp" to reset it.
I think, that will be the best way ...