interrupt buttons, code stops running sometimes

It would make more sense to use a RISING or FALLING interrupt because CHANGE will cause two interrupts for every button press.

And change these

if (buttonPushCounter == 4)

to

if (buttonPushCounter >= 4)

so you catch the situation where the count has gone higher than you expect.

...R