Saving the last value used in an ISR
Trigger on level change interrupt. 

In the ISR:


change the edge on which in terrupt is triggered (rising to falling or vice versa), 
check, which edge has triggered the interrupt and set a global variable buttonIsPressed, 
save the OCR1A value if it was button release. 


In the main loop - increase OCR1A if buttonIsPressed==true.

In addition, NEVER delay() in ISR code. 

On another hand, I think it is possible to solve this without using interrupts. Button bounce is the problem here, unless you debounce the button in hardware (using RC filter for example) - while button press is in progress, you will get some noise (rapid on/off) on the button line. It depends on the quality of button, but generally is unavoidable. Usually all human actions are slow when compared to MCU speed, so no need to use interrupts here. I'd suggest such a solution in the main loop:


is the button pressed? (really pressed, not just a random bounce)
if yes, increase OCRA1, delay a bit so human can see the results, check the button, if still pressed, repeat
if the button is released (realy released, not a random bounce), save OCR1A value


There are plenty of resources on button debouncing in this site and the internet in general.