Is there a way to auto-disconnect from WiFi when connectivity is low?
There isn't a way to specify this in the current OS, but I've found when I am in the margins of coverage - flipping AirPlane mode on and then off will prevent re-joining the Wi-Fi. Basically, the OS is trying to maintain an existing connection for as long as possible to avoid inconveniencing people who have spotty coverage or temporary disruptions and for you it's not so good.

When the signal is this low, the phone won't re-join until you get closer so you'll kick things to cellular data sooner than waiting to get out of range or it to eventually time out.