OK, I am not favor to tell HOW to code.
I was not suggesting anything near "abandoning loop() " , just reconstructing its logic.
I just give hints and expect the user to figure it out.
If that is not OK with you just ignore my posts.
You did not do just "minor changes" - you now actually read the button in the loop() as I was trying to tell you.
Now your read pin 7 and then change the buttonNumber...
Should that be your counter?
I do not understand why you keep troubleshooting (convoluted) code which obviously does not do what you want and are reluctant to minimize the task you are performing and make them work first. Such as doing button detect as I suggested.
You have the build in LED so why don't you turn it on/off after each button press?
Then add counting the button presses etc.
I would suggest you Google MorganS posts - he recently posted very nice code to "read multiple buttons".