unwanted program repetition

Off-topic, but its nice to see a newbie who knows to use properly-named constants for pin assignments.

It can also be worthwhile to use symbolic constants for your states, although in a sketch like this which just runs through a sequence, numbers might make more sense.

An important concept that I don't see in your sketch is the idea that to control something with buttons, you don't check "is the button down" but rather you check "has the button gone from being up to being down". Doing this means that you don't need those delays all over the place. As it is, your sketch relies on people hitting the buttons exactly within the time frame that your delays provide.