I can explain a little, as I explain, IOS and Mac OS X are not using the same roaming solution, and are not even storing the Access Point information in the same way ;-P
and before I forgot, if you don't have the BSSID identical, then you need to sign in to all the access point one by one, so it'll store the info SSID/BSSID/security info for each ofr them and roaming is possible, this is probably why you have this issue, and I suppose your installation hase an issue : you need to be sure your laptop connect to ALL the access point one by one Avoid giving your wireless network a common name (SSID) - Apple Support(https://support.apple.com/en-us/HT201307), and store all the crendential at least one time ;-)
After, to optimize your connection, it seems your "radio" plan is working ;-)
as mentioned before, on iOS, especially, it's a fix logic without real empiric testing it seems, and is hard to manage except if you have a network assisted roaming (802.11k and 802.11r), as wifi roaming have been devoted to be a end point task, and not a network task (the opposite of your mobile phone, where this is network assisted task, the network help you and have capability to roam without network interruption, even calls or data interruption !)
on Mac OSX, this is different, and here is the solution to make your macbook "smarter" when connecting to the wifi and handling roaming
first, you have a tool to check how your mac is deciding the network and fallback
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport
This tools, allow you to configure it's behavior, and check if first
admin$ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/air port en0 prefs
AirPort preferences for en0:
DisconnectOnLogout=NO
Unable to retrieve JoinMode
JoinModeFallback=DoNothing
RememberRecentNetworks=NO
RequireAdminIBSS=NO
RequireAdminNetworkChange=NO
RequireAdminPowerToggle=NO
WoWEnabled=YES
By default, here, on Yosemite, the JoinMode is not set, meaning, it use the default, which is "Ask"
prefs If specified with no key value pairs, displays a subset of AirPort preferences for
the specified interface.
Preferences may be configured using key=value syntax. Keys and possible values are specified below.
Boolean settings may be configured using 'YES' and 'NO'.
DisconnectOnLogout (Boolean)
JoinMode (String)
Automatic
Preferred
Ranked
Recent
Strongest
JoinModeFallback (String)
Prompt
JoinOpen
KeepLooking
DoNothing
RememberRecentNetworks (Boolean)
RequireAdmin (Boolean)
RequireAdminIBSS (Boolean)
RequireAdminNetworkChange (Boolean)
RequireAdminPowerToggle (Boolean)
WoWEnabled (Boolean)
So, to be sure the macbook is roaming properly, you need to :
_ have the access point accessed alreayd ont time (same SSID, BSSID and security would be perfect, if only SSID and security, this is good enough normally)
_ change the JoinMode and JoinModeFallback to the following settings :
_ JoinMode=Strongest
_ JoinModeFallBack=KeepLooking
it works actually well in a non assisted environment, enterprise wise (with more than 200 access point from Ubiquiti), so, you give it a try, and let me know if you behavior is the one expected, and you can try actually multiple combinaisons for the joinMode, as every environment, especially house, are different, and others "rogue" access point maybe causing issue to Mac OS X.
take care, have a great day
Fabien.
PS : if you need to check the quality and power of the different access point, you can simply press the wifi icon in the menu bar with the "alt" pressed, or use /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resourc es/airport -s to have the listing of the wifi SSID and BSSID around.