One thing I prefer about running the shutdown through crontab is that if the server is frozen or hanging this plugin wouldn't be able to execute the required console command. Our GunGame server used to freeze all the time and I had to write a seperate script to check if it was responsive and execute a server kill and restart if it wasn't.
I've been helping someone with a Day of Defeat Windows dedicated server (running my newer SturmBot v1.9 and the newest version of AMXMoX), and I swear... that server is the most problematic thing that I've ever seen!
I'm SURE that it just MUST have something with the actual server box (the hosting company is GTSGaming), but it's really hard to track down and pinpoint the problem... numerous crashes, and total lockups of the HLDS.exe process itself.
The big problem is that the server company doesn't provide for a way to restart your server on a daily basis, and worse yet... when I've seen the HLDS.exe process actually lockup, it would be in that state until WE actually shut down and restarted the server (via the web-based CPanel that the hosting company provides). Apparently they don't even have some sort of check for if a given server's process has hung up, and then to restart it
We always run Linux servers, so we're able to control it through crontab, but I'm sure this will be extremely useful to anybody not making use of crontab. I really like that it provides a countdown.
You just MIGHT be able to write a script that would FIRST have crontab check if the process has frozen, and if so, restart it (like you detailed above).
Then, the script could check if the process has NOT frozen, and if it hasn't, crontab would simply execute/RCON "simple_server_shutdown" at your specified time of day in crontab... that would give you the spiffy client countdown messages and alerts