By default, older versions of Xvnc listened for connections from x-windows clients on ports 6000+. This functionality could be disabled by the "-nolisten TCP" command line option. In turn, the GNOME desktop manager controlled this option via the "DisallowTCP" setting in /etc/gdm/custom.conf.
More recently, "-nolisten TCP" is the default behavior and listening on port 6000+ has to be explicitly enabled with "-listen TCP". The GNOME desktop manager is supposed to be smart enough to know that "DisallowTCP=false" equates to "-listen TCP", but in RHEL 8.4, this does not appear to work.
Has anyone found a way to enable listening on ports 6000+ on RHEL 8.4?
So it turns out that the "right" solution to my problem is to let the application/xwin libraries figure out for itself the best mechanism to use for connecting to the local xwindows server. The missing piece was that the xwindows server has to allow connections from processes that it does not control (i.e. those started by the GNOME desktop).
I solved the problem as follows:
Problem solved without using TCP.
I still think this is a Red Hat/GNOME bug, but at least I can work around it to solve my real problem.