The one problem with Jim's code is that the Stop button will probably be read before the wait. This will result in one extra iteration of the loop before the VI stops.
In the VI I have attached I changed the boolean indicators to a cluster carried on a shift register. This will make it easier if you want to turn off the indicators after leaving a state.
Lynn