The truth is IPv4 only had 2 real problems:
1. Lack of address space due to 32 bit addresses; and
2. Lack of a solution for roaming since your IP address is a core part of connection identity (between the source and destination address and port).
IPv6 managed to only solve one of these problems and it did so in a way that removed functionality. Yes there are more addresses but now address blocks are non-portable. I guess 25 years ago they thought that routing protocols like BGP4 were considered a problem and decided to remove that with hierarchical address spaces and massively expanded those address spaces to do it.
Somehow ports were also considered a problem so we got /64 addresses. Part of the motivation for this was to use (mostly) unique MAC addresses (48 bits) as your identifier and that fits in 64 bits. Of course this became a massive PII leak and a tracker's dream so it never happened but we're still stuck with /64 blocks that we absoultely do not need.
It's an object lesson in solving actual problems and not solving imagined problems.