Fault Tolerance: Just use Heroku. We've seen maybe an hour of downtime in a few months?
Speed (and fault tolerance): Cache everything you can, assets on S3/CF.
Testing: Rails Test Prescriptions by Noel Rappin [http://pragprog.com/book/nrtest/rails-test-prescriptions]. Then you can choose what you like, but I like Test::Unit, Mocha, FactoryGirl.
Code Abstraction: Rails is already pretty sensibly organized, and if MVC + tests + static assets is not a good fit for your webapp, you really should not be using it in the first place. One minor point: Noel and others will tell you to use skinny controllers.
Curious what other people consider best practice for Ruby/Rails startups.