Full dual stack or something like v4 CGNAT + native v6 is practical and works well where available.
Big CDNs and content providers typically support v6 - eg Apple does, Netflix does, Google does, the big CDNs like Cloudfront, Fastly, Cloudflare do.
Apple requires app store apps to function on IPv6 only networks since 2016.
The holdbacks are smaller ISPs, ISPs with big legacy v4 allocations, and businesses.
I see more pushback from MSPs etc on IPv6 (and practices like disabling it completely) than any other sector.
edit: for an ISP that enables IPv6, the majority of their traffic will pretty much immediately be over it, as a result of the big CDNs and content providers supporting it. This reduces load on compatibility mechanisms like CGNAT, which is nice too.