From my testing with iPhones, the stupid behaviour goes away on an 802.11r-enabled network. I noticed the same issues on a legacy network but that all went away after enabling 11r.
I would imagine that I phones has better roaming preference overall. But maybe having 802.11r enabled causes devices to be more optimistic in their roaming as they know they're not switching networks.