Проверил.
teadrinker был прав, а я поторопился, виноват. То приложение, которое имеет только значок в трее, — действительно имело единственное скрытое окно. И при закрытии его оно закрывается вместе со своим значком (надо указать DetectHiddenWindows On). Команда taskkill действует на него точно так же. Это вроде похоже на нормальный выход (но т. к. приложение не имеет параметров, которые сохраняются через выход, не знаю, как удостовериться).
А у handycache (теперь я уже с ним борюсь, из принципа) очень много таких окон (134 штуки). И вот интересно: применение taskkill (с ключом /pid или /IM - неважно, но без /F) в случае, если существует явное окно handycache — закрывает процесс "нормально" сразу. А если handycache свёрнуто в трей (это происходит по обычной команде "Свернуть", т.е. кнопка "_"), то taskkill закрывает все его окна ПОШТУЧНО: каждый раз их становится на одно меньше, причём если у handycache НЕ стоит галка "сворачивать в трей вместо закрытия" — то его процесс все-же в какой-то момент закрывается ("нормально") — но повторю, команду надо выполнить много раз.
Если же у handycache поставлена галка "сворачивать в трей вместо закрытия", то при многократном повторении taskkill количество окон уменьшается до 111, далее taskkill становится бессилен (но несмотря на это, пишет: "Процесс, с идентификатором 666, успешно завершен") — и процесс никогда не закрывается.
В AHK: "WinClose" закрывает "нормально" процесс handycache; а если указать "DetectHiddenWindows On" — то закроет и свёрнутое в трей (тут уточнение: по имени процесса — сразу, а по ahk_pid надо циклить, пока не переберёт все окна), но опять же: если НЕ стоит галка "сворачивать в трей вместо закрытия".
То есть: разница между "WinClose" и taskkill у меня получилась в том, что в случае, если есть только скрытые окна — "WinClose" хоть не надо циклить (если использовать имя процесса), — а второе работает только перебором (это именно для "нормального" закрытия, без ключа /F).
Если же галка "сворачивать в трей вместо закрытия" поставлена — handycache вообще закрыть нормально ничем не удаётся.
Вот что выяснилось, и пока способа "нормально" закрыть приложение, находящееся в режиме "сворачивать в трей вместо закрытия" — я пока не нашёл. Система же, не спотыкаясь, — закрывает его с сохранением параметров при уходе в перезагрузку.