The problem with IPv6 is really not the changes it made. Support was flaky for a while but that is pretty much over.
The problem is that you have to deploy it. You have to handle the bigger IP space safely, you have to assign the IPs, add DNS records, routing, etc. All this is work and the pressure is low. NAT has mostly taken that away.
Nothing would have saved us from that. There is no way to expand the number of addresses from IPv4 to more than 32 bits apart from a new protocol. There would always be software and infra changes. The server still needs to be changed to a new IPv4+ address, the client needs a new address, there needs to be internet routing for that address.
There were of course changes that were more than just a bigger address space. But I think that if you have to make software changes anyways you could also add some improvements. SLAAC is pretty nice (you can use DHCPv6 if you don't like it). Removing Broadcast is a good idea. Fixed header sizes are an improvement. There is a lot in IPv6 that are really smart ideas. None if these changes are the reason why it hasn't been fully adopted yet.