Roaming and band selection is largely a client side process. It can be 'assisted' by some of the other methods, but this doesn't work well if you haven't created a strong foundation (and even that doesn't guarantee the supplemental methods will not actually degrade performance).
Have you gone through the process of tuning your radios? Specifically:
The SSID must be the same across all of the APs and also across the 2G/5G radios.
The passphrase and encryption type must also be the same for all APs.
Neighboring APs should be using non-overlapping channels
Power levels should be reduced to the minimum required to cover the desired area per AP. This reduces the size of the overlap region
To the extent possible, the physical position of the APs should be optimized to provide as little overlap as possible while providing coverage across your entire space.
802.11r, 802.11k, and 802.11v should all be disabled.
dawn may only enter the picture after you've optimized the aspects raised by psherman (at which point you may realize that you don't need it anymore, dawn adds its own cost).