Probably the largest barrier to IPv6 adoption is the myriad ways IP allocation to clients can be done and the various options that exist.
It’s fine for mobile providers, where the client activation defines what’s needed and the carrier essentially just needs to support two OS’s (iOS and Android).
Also mostly fine for residential when the carrier provides the CPE, and can set it up to work with how they have the network built.
But if you’re managing your own router it can be complex to know exactly what to use. And most ISP support aren’t very good either.
If you happen to be an expert it’s fine, but if you’re a power user not a full time network guy there is still way more complexity than there ought to be.