Store value in EEPROM to perform different actions on reset?
While it looks interesting as idea, IHMO you have keep in mind:


Include some code for button denouncing logic. Actually you will receive couple of “resets” during ~20ms during button press. Without denouncing you may end up with reset signal right at the moment you write to the EPROM. While EPROMs are pretty “solid” nowadays, it many not be good practice. One of potential solutions IMHO is to delay update EPROM with state switch for 20ms after boot, so it be done in stable state. 
You may also consider to include electronic circuit to hold reset long enough to reboot the controller (it may also reduce bouncing).
EPROM has finite lifespan in terms of rewrite cycles, if your device turned on and off ~100 timers per day, it may die in a ~year.
Writing the EPROM usually consumes significant amount of energy, so it may reduce battery lifespan (if you use battery).


Probably more classic approach with sleep / wake up by button looks more reasonable, unless you have shortage of pins ;)