I think he only has one LED. I came up with this:
Which uses the fading_blink module I also created:
None of which I have actually tested… you get what you pay for
Main is just remembering which buttons were pushed & selecting appropriate input for LED (pot, sine wave, or fading blink).
fading_blink seems more complicated than it needs to be. If FADE is false, it quickly moves the fade output to 1; else it starts the 30 min count-down to 0 and multiples that output with square-wave output to get a blink that slowly fades the on value over the 30 minutes. (Note that LED will probably quit lighting long before blink value gets to 0…I didn’t try to account for that)