the fade doesn't stop until the fading sequence/function is complete.
Do you, while the fading is happening, read the switch state?
I see that you do. But, then, you don't give a shit whether a switch was pressed, or not, so the calls to buttoncheck() are useless.
By the way, have you noticed that the functions are called pinMode, digitalRead, etc. Not, pinmode, digitalread, etc. Ever wonder why?