OK, so basically another HTTPS proxy will need to do the conversion between hostname and IP address/port. That's actually fine: I didn't mention it for the sake of simplicity, but this is a cloud deployment where we terminate the site on external load balancers and they do that very well with a minimal cost.
So, I just have each hostname hit a different external port on the CheckPoint cluster, and make some NAT rules to route to the corresponding internal web server:
Then write an inspection rule for those ports. No need to configure hostname, since that's already being done on the external load balancer. Likewise, a self-signed cert is fine since it doesn't perform backend server cert validation.
The one thing that got me: the firewall policy must explicitly allow the CheckPoint's internal interface to talk to the backend web server. This makes sense in hindsight since CheckPoints usually need an explicit rule when they initiate a connection, just was confusing to troubleshoot since the CheckPoint was reverting to bypass after a few seconds, giving the appearance that the inspection was slow or unreliable.
I would think that NATing port 443 on the external interface would break the SSL VPN features, so that may not be a viable solution for everyone.