The solution is already here. ISPs roll out CGNAT for IPv4, but their networks are dual stack, so the client devices have real IPv6 connectivity as well as IPv4 through a NAT.
It's not great, but for 99% of consumers, they can't tell the difference. The ISP only needs a small 28 or 29 allocation, and with that they serve tens to hundreds of thousands of clients.