TimeAlarm - timers over 24 hours?

Looks like i missed the brackets off my attempts to call a function, so:
prg(); and restart(); i assume?

Yes.

Within the documentation is says you can use Alarm.delay(0) to just check the alarm status.

That means that the library is specifically handling the delay(0) issue, so using the delay() method with a value of 0 is OK. Using the delay() function with a value of 0 is not.

prgStep incrementation changed to prgStep++;

Good. It's always better to look like you know what you are doing.