OK, so I am really going to have to change my tune here ! But maybe its really good news !
I have now tested lots and lots of different distros. And I have concluded that the issue that worries me is indeed confined to just Gnome desktops. And, I found that TopIconsPlus Gnome extension are now always needed for Lazarus TrayIcon and Gnome. So, if you want to use a Lazarus TrayIcon on Gnome, you must install TopIconsPlus.
And the newer version of TopIconsPlus seems to be all we need except for (so far) one exception, Mageia Gnome. If I can detect when the user is running just that Distro/Desktop, I can have it use libAppIndicator3 and the rest just bounce back. I don't want all Gnome desktops to be forced to use libAppIndicator3 because, as Mario found, it does not call a click handler, its usable only with a menu.
Right now, when someone tries to use the TrayIcon Menu, it pops up no where near the spot the the user clicks.
Sigh.
How long do I have before you need to push that code into 2.0.6 ? If you need an an immediate solution, then I would recommend changing the test (around #270 of UnityWSCtrl.pas) so that it exists if the Desktop is not 'GNOME', that will mean that RedHat, Mageia and possibly Suse distros running Gnome will not return a click handler. (Ubuntu won't be affected, its calls itself 'ubuntu:GNOME'.) Thats significantly better than the current solution but still not good.
Davo