"while()" statement won't exit

Note that you're also not updating the time you read from the RTC during the while loop, so no matter how much time passes, now.Hour and now.Minute will never change. so until the button is pressed, it will never exit the while loop once it starts. Is this the behavior you want?