Thank you for your bug report. Not being prompted for a note when you
would like does sound frustrating.
I tried to replicate your issue by running the following shell command
and then closing the todo item.
#+begin_src sh
emacs -Q --eval '(setq org-todo-keywords `((sequence "TODO(t)" "WAITING(w@/!)"
"|" "DONE(d/!)")))' \
--eval '(setq org-log-done `note)' \
--eval '(setq org-log-into-drawer t)' \
-f org-mode \
--eval '(insert "* WAITING task")'
#+end_src
Indeed, I was not prompted to take a note. This is because the "!" in
"WAITING(w@/!)" means only to log the change, not ask for a note.
If I change the above command to have this definition of DONE:
"DONE(d@/!)" then the "@" will overrule the "!" from WAITING.
When I run the above command but with the "@" in DONE, then I am
prompted to take a note.
> Even changing the DONE state from "DONE/!" to "DONE(@/!)" doesn't affect that.
This contradicts what I'm seeing on my end. Would you be willing to
double check this?
Morgan