its very likely that your intend will be somewhat available in upcoming versions
since when everything goes oo (not only oO )
in the codebase we'll end up with kind of objects and methods for each and everything.
Its easy then to extend the functionality for a given method with some custom code to call a billing system or something like that.
But to be honest - you've chosen the wrong thread for talking about an internal - non environmental problem related event system. Mainly because the reason for asking about such a thing was an environmental problem concrete : The facility went down because of a power outage and no website was reachable.
Idea :
Why don't you use powerdns as your 2nd DNS (it creates zones automatically in its i.e. gmysql backend.
While everything works normal, pdns receives its zone updates via axfr (yeah its unable to do ixfr - however) and
will hopefully populate its records table with your A records and so on.
In case your primary server goes down - you prepare a update statement, that replaces every A record with your failover IP. When you primary server comes up again, you just empty the records table and force a zone update on your primary - he'll then notify your pdns and transfer the zones again. (else have a table dump by the hand and just play it back -> could be easily done in 3 lines of bash code)
That way you will be able to have your dns records changed very comfortable in a short amount of time in case of a emergency.