The Lilygo/TYGO ESP-32 boards I've used also have horrible battery life while deep sleeping (which is a bummer because they put out some cool boards that seem ALMOST perfect for battery use cases)
If you have the wrong board it will be bad. You need to pay attention to the power supply on the board.
I've got a weather display (epaper, refreshes every hour) that I need to charge every 18 months or so. If you find the right board they're pretty much perfect.
I second that, I have an EzSBC ESP32 board [1] that wakes up twice a day to fetch data through WiFi and three standard mini 1.5V, non rechargeable batteries are still going strong after almost one year. The power supply stage is truly the most important bit when it comes to deep sleep power consumption.
Do you have a link handy? I had trouble with an e-ink board from them that drew tens of milliamps when it was asleep (on a well optimized ESP-32 it should be more like dozens of microamps)
The firebeetle claims 10uA and from memory is pretty close on a tinycurrent, or the Unexpected Maker boards [0].
You might be able to fix your existing boards if you look at the schematic and remove any unnecessary draws (voltage measurement dividers and always on LEDs are a good place to start). To get into the <20uA range the board needs to have an LDO with a low quiescent draw though, and designed so you can shut down power to the eink driver.
Thanks for the info! Do you know if it's still possible to do partial refreshes if you shut down the display in between updates? Or is best/required to do a full refresh every time you restore power?
This is one of the reasons I only use RAK WisBlock devices, which use the very low energy nRF52 chips, and are also truly industrial strength quality, and more flexible regarding many types of sensors etc. (and also have a nice small solar panel enclosure, if it fits your use case).
If I remember correctly there have also been a few bugs in M5Stack ESP32 APIs because of deep sleep not working, I'm thinking there's also a few underlying Esspressif API bugs.