Решил проблему следующим образом:
//Пока есть проблемы при открытии нескольких окон - будем открывать по одному
//Перед открытием окна справки закроем все предыдущие
HtmlHelp( NULL, NULL, HH_CLOSE_ALL, 0 );
//Было замечено, что если вызывать HH_DISPLAY_TOPIC сразу после HH_CLOSE_ALL, это может привести
//к плачевным последствиям, вплоть до вылетания программы. Поиски информации ни к чему не привели,
//но экспериментальным путём выяснено, что проблема не появляется при вызове с некоторым запаздыванием.
//Думаю, что в этом некритическом месте одна секунда - это небольшая плата за стабильность системы.
//Возможно, есть другой путь, но я его не нашёл.
Sleep(1000);
HWND win = HtmlHelp( caller, topic_name, HH_DISPLAY_TOPIC, NULL );