I think so. I would consider perhaps allowing a short time without power before doing that. To handle short cuts and brownouts.
So perhaps poll once per minute, if no power for more than 5 polls trigger a shutdown. Make sure you can provide power for at least twice as long as the grace period. You could be a bit more flash and measure the battery voltage and if it drops below a certain threshold send a more urgent shutdown on another gpio. But really if the batteries are good for 20mins+ then it should be quite safe to do it on a timer.
The logic could be a bit more nuanced, to handle multiple short power cuts in succession to shorten the grace period (since the batteries could be drained somewhat). But this is all icing on the cake I would say.
Oh, I forgot about Azerothcore (which is a fork from Trinitycore, and absorbed some changes from certain private server source that has been released in the past).
Which you choose I think depends on what you want.
Trinitycore has a more strict development policy of doing things properly and not for example concentrating too much on getting boss fights etc “right”. It’s more of a technical project than “ready to go private server”.
Whereas (and this is as I understand it, I’ve not done any work for the project directly) Azerothcore is a bit more lax in their requirements. Now, don’t take this to mean they accept bad code. It just means they don’t have the stricter guidelines that trinitycore have.
I could be wrong though. I’ve been out of the game for a while now.