I did not set isolation, but all wlans have that apparently?
for f in $(find /sys/devices/virtual/net/br-lan/lower_wlan*/ -name hairpin_mode) ; do printf $f: ; cat $f ; done
/sys/devices/virtual/net/br-lan/lower_wlan0-1/brport/hairpin_mode:0
/sys/devices/virtual/net/br-lan/lower_wlan0/brport/hairpin_mode:0
/sys/devices/virtual/net/br-lan/lower_wlan1-1/brport/hairpin_mode:0
/sys/devices/virtual/net/br-lan/lower_wlan1/brport/hairpin_mode:0
And if I change it to 1 like that all devices are able to ping each other:
for f in $(find /sys/devices/virtual/net/br-lan/lower_wlan*/ -name hairpin_mode) ; do echo 1 > $f ; printf $f: ; cat $f ; done
/sys/devices/virtual/net/br-lan/lower_wlan0-1/brport/hairpin_mode:1
/sys/devices/virtual/net/br-lan/lower_wlan0/brport/hairpin_mode:1
/sys/devices/virtual/net/br-lan/lower_wlan1-1/brport/hairpin_mode:1
/sys/devices/virtual/net/br-lan/lower_wlan1/brport/hairpin_mode:1
Setting it all back to 0 reproduces the problem...