I believe I may have found the source of the initial bug in the upgrade. It may have been due to the IUS repository being enabled (for pulling in that repository’s version of httpd for security audit compliance purposes). That repository also added its own newer versions of python after the initial build of this system, which likely led to unexpected results in the upgrade scripts.
In trying to replicate the problem from scratch, I found that the installer could not even complete a basic initial install with that repository enabled.
To permanently work around this issue, (particularly as it relates to our requirements from automated external audit scripts), I will be rebuilding this system on CentOS8 as soon as the compatible releases of Foreman/Katello stabilize.