In 3 weeks you could do a fair bit. I like the sound of Marks itenerary.
If you want pack in a lot then a week up north, a week in the metro area and a week down south, could work with a lot of driving or some charter flights?
Kalbarri, Coral Bay & Exmouth are all nice but my family would be bored with more than two days stay, but I'd be happy diving, fishing & kiting for a week, it's hot and there's a lot of driving between watering holes up that way. There's usually heaps of wind up there and obviously around Gero, Dongara & Pt Gregory.
Metro, plenty of city life stuff to do there, it's not my town and I don't usually enjoy going there unless I've got tickets (I think something to do with an inability to respect other road users or show courtesy usually starts it but now the pubs up there have started serving pints of beer in smaller NSW size glasses at the same overinflated price - end rant) , Rotto would be good to chill for one or maybe two nights, there must be somewhere to kite around the island? Just up the road are a few nice beach side towns, Lancelin, Jurien etc. but probably a one night stop rather than a day trip.
Down south is a good place to chill, if you're based around Margs or Augusta (if you can find accommodation available) then you can day-trip around the coast, Albany is 4 hours drive from Augusta and there's not much else there, Margs area has the obligatory wineries, breweries, visit Bootleg if you can.
Planning our holidays around the state involves an old map and a highlighter! Google maps gives a reasonably good estimate of driving time, even accounting for Perth drivers

Enjoy your trip!
Cheers, j