The Gang of Four would like you to be clearer about just what is the "state pattern". In this pattern you need to focus on encapsulating behavior in the same object based on it's internal state. You control the state without resorting to conditional statements. The end result is more maintainable code as you point out.
in 99.9 % of cases, maintainable code trumps milliseconds of time savings. I agree, branches and levels of if, else, else if's statements are most annoying and amateurish.
You could easily book about this problem but I don't think anybody would be interested.