You're running the task in your constructor, and you're running your task in the squeeze method. You seem to have completely dis-regarded the timer altogether even though you created it, so you are trying to run the task outside of the timer (i.e. you're still single threaded).
Furthermore, your stack trace seems to indicate you ARE using the timer, have you modified the code since or before you posted the trace / snippet?
P.S I don't see why you would use the Timer class, it's more a class to schedule something to happen at some given time, if you want something to go NOW and increment on a certain delay, you might as well just use a Thread. (Don't forget to stop the thread when they release the pump handle though, you might wanna keep the thread as an instance variable so you can call the interrupt method. Also, note, you cant restart a thread, but that's alright, just create a new one passing in the same Runnable as an anonymous class. (i.e. stop and nullify the instance variable, then create the new thread in the instance variable)
If you wanted to get fancy there you could use an executor as a way of re-using a thread, or have a constantly running side thread that your app can just observe (observer design pattern) when it needs to know when a tick happens. But tbh, those two things are huge amounts of overkill.