Even with 25000 cycles EEPROM will wear out relative soon.

About the button,maybe you can try to wait for the button release before proceed.

Also the the idea of add or subtract one to the duty cycle in theory it will work, practically will have a lot of jitter. Here PID control may help (more complicate though).

Ioannis