How does VLAN subnetting work on IPv6?
Solution 1:
VLANs are layer 2 constructs, not layer 3. You pass frames inside a VLAN regardless of layer 3 protocol by switching. For crossing VLAN boundaries, a router is required.
Just like with IPv4, if you subnet an IPv6 network you need to grow the network mask/prefix, e.g. you can subnet a /56 network into 256 /64 networks (or just two /57 networks for that matter).
The beauty of IPv6 is that it's completely normal to use multiple different prefixes within a single network at the same time. So, if you need to renumber at any time you just put a new prefix on top, let it propagate through and then you remove the old prefix.
Solution 2:
As has been indicated by others VLANs are a layer 2 construct and thus are not relevant to the how to subnet IPv6 question, though I can see why people conflate VLANs and IP subnets because they often go hand in hand when implementing an addressing scheme.
Also, as you found in your research IPv6 should not really be subnetted into anything smaller than /64. The correct solution is to get a bigger network allotment from your upstream provider. For business purposes you should be starting with a /48 allotment from your provider. Even for home use ISPs offering IPv6, such as Comcast which I'm using for IPv6 at home, will give you a /60 allotment allowing for 16 subnets. So this is the "correct" way to do things.
That said, I don't know of any technical reason why it would be impossible to subnet into something smaller than an /64 EXCEPT that it will likely break almost all IPv6 automatic addressing methods which rely on having 64 bits for the host ID. This would include SLAAC and stateless DHCP for certain, and likely stateful DHCP. Finally, the OS IPv6 driver on the clients and/or network devices may refuse to accept a prefix length less than 64.
**Edit: I should clarify what I meant by no technical reason will prevent it from working. Really I meant no mathematical reason will prevent it from working. The binary math is all the same. However, the services which make IPv6 function (neighbor discovery, etc.) essentially require /64 host IDs. TL;DR, get something bigger than a /64 if you need to actually work with a subnetted network.