This is exactly where we want to go with our service one day.
The hardest part is the database but here is kind of how I see things working...
You have to create pools of everything. A cluster of asterisk servers,
a cluster of ahn servers (you could put them on the asterisk server),
a cluster of database servers. The database and ahn servers need to
be behind a load balancer.
If the databases are truly clustered you should be able to lose any
one and still go along fine.
You keep everything syncronized by either git, rsync or powerfolder
except the databases.
You communicate between the ahn servers using rinda/ring, spread, or
the amazon queue service (pay per message).
As I said the hardest thing is the database. If you can put down the
relational database crack pipe you could "outsource" that to amazon
too.
BTW if anybody wants to work on such a project I would love to work with you.