in aller Regel verschwindet das Icon wenn eine Interaktion mit dem Trayicon erfolgt (Mouseover etc.) und die Nachricht dafür nicht an das angegebene
Handle gesendet werden kann. Das kommt vor wenn zum Beispiel das angegebene
Handle aus deinem FormCreate nicht mehr existent ist weil intern das Fenster neu erzeugt wurde.
Was mich wundert. Du bindest in den Uses das CoolTrayIcon ein aber am Ende nutzt du die Komponente gar nicht sondern machst trotzdem alles direkt (Icon registrieren etc.). Wenn du die Komponente verwendest sollte dein Problem verschwunden sein weil die Komponente intern ein eigenes Fenster erzeugt was über die ganze Zeit erhalten bleibt und nicht durch Anzeigen des Fensters eventuell neu erstellt wird.