Thailand is a breathtaking country...and I'm a bit envious

I've been there five times, so I guess I can't complain, lol.
You can definitely accomplish everything you're wanting to accomplish within the 20-day time frame. I personally like to settle in a place for at least 4-5 days to really enjoy it, but that's not totally necessary.
Phuket and Krabi are really nice (of course), but also quite commercial and touristy. I'm not sure what you're looking for. If it's just mainly diving, then you could certainly use one or both as a home base.
The Similan Islands are not to be missed. Spectacular. I've also been around Phi Phi Island and Hin Mouang, both of which were also pretty awesome.
Are you considering traveling up to Northern Thailand at all? Perhaps an elephant trek or two? Chiang Mai and the surrounding areas are all pretty incredible.