Here's an observation that might be helpful for your debugging, idk, just let me know if this isn't relevant.
I have a Pi3 that is being utilized for another purpose. It's running nginx to serve some web pages. Periodically, it would become unreachable this morning. I found that if I remoted into another Linux box from my phone, and then SSH'd from the LInux box into the problematic Pi, it would make the Pi web page responsive again. After this happened several times repeatedly, I noticed that I didn't actually have to provide the password requested from the Pi, simply attempting to connect would "wake up" the Pi. This Pi is running Raspian. And, although I tried, I couldn't SSH directly from my phone to the Pi. I had to use the other Linux box as the gateway.
So, this morning I was watching my HM on my phone while finishing up an overnight cook. I'm starting to lose track of events. But, one thing for certain, the HM became unreachable from my mac. So, I tried to SSH into the HM from my mac terminal. But, SSH responded with host not reachable. I tried pinging it from my mac, with no luck. So, from that mac terminal, I SSH'd into my other Linux box (same as mentioned before) and from that box, I was able to SSH into the HM from it (again, using the Linux box as a gateway). This made the HM web page available on the mac.
The other odd part is that I am running a Terminal on my iPhone that I can use to ssh into other boxes on my LAN. Interestingly, I couldn't connect straight to either PI. But, I could SSH from my phone to my other Linux box and from there SSH into the Pi running nginx. I'm not positive now if I every tried going from my phone to my Linux box to my HM.
This seems to suggest the problems are all native to the wifi adapter and/or driver on the Pi3, which is what I believe you already said.