I'm not sure if this is your problem but you need to be careful
about which operation execute first.
Your code:
(buttonpushcounter%2==1 && millis()-currentmillis <= interval)
Probably should be:
( (buttonpushcounter%2==1 ) && ( ( millis()-currentmillis ) <= interval ) )
I may have gotten a couple extra () in there but I think this is what you
want to be telling it to do.
I don't think:
( ( buttonpushcounter%2==1 && millis() ) - ( currentmillis <= interval ) )
is what you want it to do but is what is you told it to do
Dwight