Thomas,
Few things on this topic:
- Roaming is very dependent on the device in my experience. Apple devices roam pretty smooth in my experience, for Android devices it really depends on the type and version of the device. Newer Android versions (5.x/6.x) seem to roam better than older ones (4.4), but also the vendor's implementation can influence the roaming. I have seen terrible results with a hardened phone (one that does not mind if it is dropped from 5 feet / 1.5 m) while on the exact same network my Nexus 5 roamed without any hickup in the voice.
- Roaming is also dependent on how the wireless is designed. You mention that you have -65 dBm everywhere, which might be too strong (yes, I know this sounds counter-intuitive). If your AP's are set on a power level that is too high, clients may stick to an AP because the signal is still good enough from the view of the client. Many devices only start looking for another AP when the signal drops below -70/-72. This also means that it is a good practice to keep the power levels on all AP's in an environment to about the same level, may be +3/-3 dB, to prevent some APs to go high in power and create huge coverage areas (and attract lots of clients) where other APs go very low and will have hardly any clients and very small coverage.
If you want to read more on this topic, I would highly recommend reading the VRDs that cover these topics, mainly the Lync VRD, and the Optimizing Aruba WLANs for Roaming Devices VRD. Note that the Optimizing VRD is a bit old on some topics, however most what is written in it is still true.
It covers some additional optimizations for better roaming, like disabling lower data rates to encourage clients to roam before they are out of reach of the AP they are associated to.