There's no good reason to implement something that is strictly a sequential logic with a 555. Simply go, buy the cheapest microcontroller you're willing to program and do it with that. Less effort, less parts, in the end, usually cheaper, and much more flexible.
Note that this doesn't apply to all possible applications, but yours is what is typically called a finite state machine; that is, it switches between different, well-defined states in its operation, based on some inputs (namely, time, and button presses). In each state, it reacts differently to these inputs. Historically, processors were built to deal with these kinds of problems, that's why I'm acting a little bit surprised here
There's cheap Arduino clones all over ebay. The logic you're trying to implement is tremendously complex if done in analog, and totally easy if designed in C, in an Arduino sketch, or even a graphical programming language.
TL;DR: Don't try to do this with a 555. What you describe is too complex to be sensibly built with that, but totally easy if you have a microcontroller