There's ways to avoid writing to the EEPROM unnecessarily, like only storing the state when the pedal powers down, and like that a 100,000 cycle average lifetime can easily be enough.
That would require a battery though, no?
As best as I can tell these are saving immediately, and not doing any batching.
There are tricks for that, can't find the article 1-2-3 but I'll try to describe it from memory:
* Make sure the MCU is fed through a diode and a large-ish electro
* Feed the power-in to a resistive divider into an ADC pin
* Monitor this pin
* Keep your settings/programs/whatever in RAM (copy from EEPROM upon boot)
* As soon as the power starts to fall/fail, write the in-RAM stuff back to EEPROM. Since the MCU is at this time powered separately all stored energy in that electro should be able to keep it up long enough, couple of 100ms ?
you can write 100k times to cell no. 1 and cell no. 2 will still work perfectly 
That works on AVR (and on PIC? I have no experience with those) but on STM32, every single byte write will actually overwrite a whole frigging page since it only support page writes?!?! Found out the hard way, now I'm using "emulated EEPROM" which resides in RAM, and is written back to EEPROM on demand. Which is actually not so bad, since combining the code with the procedure described above is only logical.
In my projects I keep all those variables in a struct so writing it back takes just one call.