If you already have to do CGNAT, why not IPv6 as your core network with NAT64 at the border and 464XLAT on the CPE? It gives you best of both worlds.

I'm not doing CGNAT. We were able to get enough IPv4 addresses directly from ARIN a few years ago after being on the waiting list for a couple of years. It's a pity that widespread fraud depleted that pool faster than it should have been.

CPE support for IPv6 has generally been garbage with it taking 15-20 years before the bare minimum was supported by mainstream router vendors. Even today there are still vendors that assume only IPv4 support. In my opinion the IETF really screwed up when they made IPv6 more complicated than just IPv4 with more address bits. The incumbent in my area generally uses PPPoE in their access network, but routers that supported PPPoE and prefix delegation basically didn't exist in 2010, and only started being available circa 2015 (in part due to the required bits not existing in OpenWRT and the hardware vendors' software development kits for their chipsets). Sure, we're 10 years further on now, but there remain a number of vendors that only support IPv4 for management of devices (cough Ubiquiti cough) in parts of their product line.

That said, there are features of IPv6 that are absolutely awesome for carriers. The next header feature that pretty much eliminates the need for MPLS in an IPv6 transport network is one such item that makes building transport networks so much cleaner when using IPv6 than IPv4. No more header insertion or rewriting, just update one field and fix up the delta on the checksum and CRC. They just aren't really applicable for smaller networks.

Ah, okay, well if you already have the IPv4 address space available for all your customers that's a different story. I can understand why you want to wait to dual-stack in that case.

I do think NAT64/464XLAT is a pretty good architecture for new ISPs that can't get their hands on IPv4 space, though. Or even MAP-T, but CPE support isn't really there yet.

Android and iOS have pressure on app developers to support IPv6 or at the very least function on 464XLAT. On home broadband people could connect anything including programs that use literal IPv4 addresses and break on 464XLAT. Things like corporate VPNs, Skype, online gaming. Ironically these services would benefit the most from supporting IPv6 but they've evolved to deal with IPv4 NAT to the extent that they've become dependent on IPv4 connectivity.