I had a few questions if you don't mind answering as I'm doing something similar for a vacation home (and my own, but this is more relevant to the remote one).
How many IoT devices are you working with?
I don't have the best router up north and some of my lousier routers can't handle more than about 25 devices before they start crapping the bed.
Do they disconnect often from your router (and do the successfully reconnect)?
Similar router problem, though I've found some of the more finickier devices I own can have problems in my home where I have a number of options for connections.
If you haven't had these problems, what router are you using?
What about "the internet is down"?
This was less of an issue when everything was Z-Wave/ZigBee, but all of the cheap stuff is WiFi. This mostly only concerns "the lights" and "the plugs". I don't want a switch to stop being able to control devices it's not directly attached to if home assistant or the target device can't reach the internet. All of the ones that I own broadcast state and can accept commands via UDP over the local network so I was thinking of writing something that HA could call, locally, which would issue those commands and receive the statuses (so they'd always be local-only).
I only have only few (less than 10) IoT devices using WiFi and they are spread over 2 fairly good access points. The rest are either wired or using ZigBee. My router doesn't have WiFi functionality itself, it's a Unifi Dream Machine SE[0] with the APs and cameras connected in PoE. It's plugged on a UPS, so hopefully the internet should still work if the electricity cuts.
Regarding your issues, I'm not an expert but I would recommend deploying more access points (pick some good ones) on the areas where your IoT devices are. Best advice I have is to wire your access points, I always had bad results when bridging them wirelessly. Although if you are in a remote area with little interference, you could get better results.