Very interesting, thanks! I've spent a bit of time working on a library to accomplish this, and Boto has been extremely helpful.
The watchdog isn't very sophisticated -- it just checks to make sure that the correct number of instances are running in each auto-scale group.
How did you decide on the right number of instances? The article mentions 20%--is that based on latency, a cost-saving target, or something else?