starting with whether or not the concept is even feasible.
Yes, it is. It's not even terribly difficult. You just need to break the problem down into pieces that you can implement.
You mention pressing a button. I'll assume you really mean switch, as pressing a shirt button will have no effect. The state change detection example will show you how to determine that a switch has become pressed, as opposed to is pressed.
You can set a time to count down to 0. Each time the switch becomes pressed, increment that value by whatever amount is appropriate.
The blink without delay example shows how to use millis(). Each time through loop() you can compare the current time (obtained using millis()) to the last time you decremented the time to count down variable. If it has been long enough, reset the time and decrement the value again.
Using an if statement or two, you can determine if the LED should be on steady, blinking, or off. If the LED should be on, but isn't, turn it on. If time has run out (time to count down has reached 0) turn the LED off. If the time is low, blink the LED, using the blink without delay technique, NOT delay().
If you have problems, post what you have, explain what it actually does, and how that differs from what you want.