I would consider anybody choosing any option other than "before 2020" as misinformed.
At the beginning of the year, I looked at those Google IPv6 stats. I noted the exponential increase in IPv6 usage, calculated the exponent, then calculated the time necessary to reach 100%.
Ten years, a.k.a. 2024. ...and since the beginning of the year, the curve on that graph has flattened out, so a projected date would be even further into the future.
Granted, 100% availability isn't the same thing as "large-scale IPv6 deployment" but at the same time, until everyone is able to use it, it isn't going to be taken as seriously as IPv4.
I'm not sure why it's taking so long. Last I checked, Comcast was up to 25% deployment, and Time Warner Cable was up to 7% deployment.
Indeed, Time Warner is my ISP and, despite living in a small town of no importance, I discovered I have native IPv6 a month ago when I ran "tcpdump -n ip6" just to see if anything at all was there. Still took me a day to figure out how to get Linux to use it, as Linux by default refuses to accept router advertisements when configured as a router (which it was due to my Hurricane Electric tunnel), as if a router wouldn't need to know where to send packets. The fact that IPv6 functionality isn't well thought out and hasn't been widely tested seems to be a major issue with getting it to work, but once you do figure out all of the configuration misunderstandings, it does seem to work well.
About two months ago my modem quit working, and Time Warner gave me a DOCSIS 2.0 modem to use while I sent it in for repair. Why they're still handing out modems that aren't IPv6 compatible, I have no idea. They need to get rid of those things.
Just last night I was looking at home routers at Wal-Mart, and only about 1/4 of them claimed to support IPv6 on the box. One claimed only "IPv6 pass-through." Even for the ones which support it, it's questionable how well. I downloaded a Tomato firmware that supposedly supported IPv6, only to find that while they may have included the IPv6 support in the kernel, the GUI largely had no clue how to deal with it. For example, I tried to set up static DHCP addresses in the same way its done for IPv4 addresses, by clicking on the address and typing in what address I want that computer to have instead. It took me to the static address configuration page, but the maximum length of the input field was too short for an IPv6 address. I'm pretty sure that the address was only a link at all due to accident, in that the GUI software just didn't realize that it should create links for IPv4 addresses and leave the IPv6 addresses unlinked as it doesn't know how to them. I don't think it was even running DHCPv6, I think it only did stateless address autoconfiguration. I ended up having to run pfSense in a virtual machine, as configuring the umpteen daemons necessary to perform the functions of a router in Linux proved to require more days of work than I cared to put into it.
Anyway, I think the router issue is the biggest one. Old ones don't support IPv6. Most new ones don't support IPv6. ...and almost no one is going to go buy a new one just to get IPv6 when they can still reach Facebook via IPv4, especially someone who just bought one this year and so they already think they're relatively up-to-date. (...and the ones I saw that did support IPv6 were the most expensive ones, the ones where it'd only cost twice as much to just buy a computer instead.) Given that 2020 is only six years away, I don't think that imagining that most of us will still be IPv4-only in 2020 is unrealistic. Six years is not a long time to hold on to a router. I don't think I know anyone who owns one that isn't at least that old already.