The ESP8266 had some limitations regarding deep sleep to appoint at least two:
- the deep sleep period with a maximum time of a bit more then one hour
- deep sleep wake up was implemented as a reset, so all variables lost their values and got back to default, due to the reset all initialization code in setup() must be executed after a wake up
Seems that the successor, the ESP32 has not this limitation any more: