As an alternative to the fine-grained
(setq org-todo-keyword-faces '(... )
which allows you to make adjustments to every TODO state, you might consider a dichotomy approach, which essentially make one face for each of the two groups on either side of the | pipe, for instance
(set-face-attribute 'org-todo nil :foreground "#AFD8AF" ) (set-face-attribute 'org-done nil :foreground "#CC9393" )
(This color choice is my current switch in zenburn theme.) That is, these apply respectively for the groups in
TODO1 TODO2 ... TODOk | DONE1 DONE2 ... DONEn
So for instance, 
ETA:
I've since had to wrestle with the fact that various org-mode headline levels have various colorings, and it was too inconvenient to try to find color pairs (for org-todo and org-done) that would contrast nicely with all headline levels. Further, would have to deal with changing Emacs' color-themes, as the low contrast zenburn may be less appropriate as the season changes.
It is much easier to simply invert the default colors. The resulting rectangle edge is a little awkward, so the border helps to make it look a little more natural. Then, I arrive at a scheme much like Stuart Hickinbottom's.
So I now have
(set-face-attribute 'org-todo nil :box '(:line-width 2 :color "grey75" :style released-button) :inverse-video t ) (set-face-attribute 'org-done nil :box '(:line-width 2 :color "grey75" :style released-button) :inverse-video t ) (set-face-attribute 'org-priority nil :inherit font-lock-keyword-face :inverse-video t :box '(:line-width 2 :color "grey75" :style released-button) )
This produces, with init file color choice (load-theme 'deeper-blue t),

(Red as in STOP! Do this! Green as in you are free to go and play.)