This is for a Cisco router (not ASA). I also see it on Palo Altos, and even on a Fortigate that's not behind NAT.
I realized there's two things going on. First, when acting as initiator, the CheckPoint does not negotiate NAT-T. Since we did not have esp allowed in our firewall rules, this would result in the tunnel coming up (udp/500 OK) but not passing ESP traffic which is required for the payload. Adding esp to the GCP firewall rule mostly fixed the issue.
There's still a edge case still being problematic: remote end is behind NAT. If using IKEv1, tunnel comes up fine on udp/4500, but with IKEv2 the tunnel won't come up at all. I have a case open with TAC on this.