I found this rule would let packets pass:
firewall-cmd --permanent --direct --add-rule ipv6 filter FWDO_external_allow 0 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT
(external is the zone with the WAN-facing interface.)
I can now send a ping from a LAN client (Windows 10) but it times out. I've disabled the WIndows firewall for testing to remove that variable.
However, tcpdump shows neighbor solicitations going out to the LAN client but no replies (neighbor announcement), so it has no place to send the replies from the Internet site being pinged. I'm trying to track down the problem there.
IPv4 pings to the same site work fine. I saved my iptables and ip6tables rules to files and diff'd them and don't see a difference now except for the different kinds of icmp used for error replies.