I agree with Lee ... save your Athens time for the end of the trip. And I think 3 nights in Athens is plenty.
My recommendation would be that after you land in Athens, fly directly to your furthest island. Allow a couple of hours between the time your plane lands and your flight to the island takes off.
Where to go? As everyone has said, that's really up to you. Do some research and see what islands really seem appealing to you. With 3 weeks, I'd probably do 4 islands, planning to ferry between them. Pick four islands that are in the same "group" -- i.e. the Cyclades or the Dodecanese, to simplify and minimize transportation. Depending on your island group, you can fly or ferry back to Athens at the end.
Most people visit the Cyclades on their first trip ... Santorini, Naxos and/or Paros, sometimes Mykonos. Again depending on your interests, there are other Cycladic islands you could consider (Milos, Folegandros, Sifnos). If you choose these islands, you would likely fly to Santorini first, then make your way back to Athens by ferry.
I personally love the Dodecanese. You could fly to Rhodes, then island hop northward. At that time of year (in these islands) you wouldn't need hotel reservations .... just a good ferry schedule, and a guidebook with listings of hotels. You could call for reservations the night before you'll arrive on each island, or even just take your chances on finding someone at the ferry dock offering rooms. Along the way you could visit the tiny island of Nisyros, which has an active (but not erupting) volcano that you can walk around inside, which I found fascinating. If you time it right, you could hop all the way up to Samos and then take a day trip over to Ephesus in Turkey, which is one of the most amazing archeological sites you'll ever see. Then you could fly from Samos back to Athens. (I'd buy that plane ticket in advance.)
You're going to have such a great time! Let us know if you have any other questions.