What I need is to have Magento charge a flat rate shipping for orders under a certain amount, and free shipping for orders over that amount. It's like having two flat rates. I have tried setting a flat rate and free shipping together but it just gives the option to the customer to chose between them via a radio button; which is not what I need.
Your idea was good add free and flat rate and then you will just need a little hack in your template:
go to template/checkout/onepage/shipping_method/available.phtml and brake the for each as folow
In the admin be sure you put the freeshipping first.