I think that you are on the right track with Bogota and Cartagena...polar opposites of one another, but still Colombia. Agree that flying will maximize your time.
Villa de Leyva would have to be an overnight trip from Bogota, but really would give you a great historical small town experience (even tho it is very touristy). You could do 3 days Bogota, 2 days Villa de Leyva and 3 days in Cartagena. A closer but less impressive alternative that could be done in an easy daytrip from Bogota, would be Zipaquira. Zipaquira is still very nice, laid back & relaxed, has a famous Salt Mine Cathedral, and (in my opinion) is much more real-world that the touristiness of Villa de Leyva. Then you could do 4 days in Bogota (with day trip to Villa de Leyva), and 3 or 4 in Cartagena.
Bogota has plenty to see. I'd spend 2 days in the historica/downtown areas visiting the Gold Museum, the Botero Museum, maybe the National Museum, hiking up Monserrate and just walking around enjoying the area. Then you'd have 2 days to for other stuff like wandering the modern parts of the city, and maybe that daytrip to Zipaquira. Also if you are in Bogota over a Sunday see if somehow you can get a bike, and bike around the city (they close somthing like 200 kms of roads to traffic, but only till one or 2 pm). It's a great and very safe way to see many parts of the city and lots of locals since everyone is out biking, running & walking. Bogota Ciclovia Map Lots of little vendors set up booths along the routes.
Take sunscreen and something long sleeved. Bogota is up high enough that the sun is lethally strong even though it never gets hot out.
Cartagena is totally different, incredibly beautiful, colourful, hot, very Carribbean, and very very touristy. There are some chains of islands that would be a nice overnight escape with good beaches. Bogota and Cartagena are about as opposite as one can get within one country.