Update:
I finally had a moment to implement steering and fast transition, and it works great. Wonderful resolution, extremely robust handoff. To help others, here's the configuration which worked for me (I have three APs and a CCR2004 router running capsman).
# 2024-07-10 20:45:50 by RouterOS 7.15.2
# software id = CWU8-WMJ4
#
# model = CCR2004-16G-2S+
# serial number = (serial)
/interface bridge
add name=bridge1 port-cost-mode=short
/interface ethernet
set [ find default-name=sfp-sfpplus1 ] advertise="10M-baseT-half,10M-baseT-ful\
l,100M-baseT-half,100M-baseT-full,1G-baseT-half,1G-baseT-full,1G-baseX,2.5\
G-baseT,2.5G-baseX,5G-baseT,10G-baseT,10G-baseSR-LR,10G-baseCR"
set [ find default-name=sfp-sfpplus2 ] advertise="10M-baseT-half,10M-baseT-ful\
l,100M-baseT-half,100M-baseT-full,1G-baseT-half,1G-baseT-full,1G-baseX,2.5\
G-baseT,2.5G-baseX,5G-baseT,10G-baseT,10G-baseSR-LR,10G-baseCR"
/interface list
add name=WAN
add name=LAN
/interface wifi datapath
add bridge=bridge1 disabled=no name=datapath1
/interface wifi security
add authentication-types=wpa2-psk,wpa3-psk disable-pmkid=yes disabled=no ft=\
yes ft-over-ds=yes group-encryption=ccmp group-key-update=1h name=sec1 \
wps=disable
/interface wifi steering
add disabled=no name="Hector Steering" neighbor-group=dynamic-Hector-5518dcee \
rrm=yes wnm=yes
add disabled=no name="Florry Steering" neighbor-group=dynamic-Florry-5518dcee \
rrm=yes wnm=yes
/interface wifi configuration
add channel.band=5ghz-ax .reselect-interval=1h .skip-dfs-channels=10min-cac \
country="United States" datapath=datapath1 disabled=no name="Hector 5GHz" \
security=sec1 security.ft=yes .ft-over-ds=yes ssid=Hector steering=\
"Hector Steering" tx-power=15
add channel.band=2ghz-ax .reselect-interval=1h datapath=datapath1 disabled=no \
name="Florry 2GHz" security=sec1 security.ft=yes .ft-over-ds=yes ssid=\
Florry steering="Florry Steering" tx-power=15
/ip pool
add name=dhcp_pool0 ranges=10.62.14.128-10.62.14.190
/ip dhcp-server
add address-pool=dhcp_pool0 interface=bridge1 lease-time=1w1d name=dhcp1
/ip smb users
set [ find default=yes ] disabled=yes
/port
set 0 name=serial0
set 1 name=serial1
/system logging action
add email-to=(email) name=email target=email
/interface bridge port
add bridge=bridge1 interface=ether2 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether3 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether4 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether5 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether6 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether7 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether8 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether9 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether10 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether11 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether12 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether13 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether14 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether15 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=ether16 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=sfp-sfpplus1 internal-path-cost=10 path-cost=10
add bridge=bridge1 interface=sfp-sfpplus2 internal-path-cost=10 path-cost=10
/ip firewall connection tracking
set udp-timeout=10s
/ip neighbor discovery-settings
set discover-interface-list=all lldp-med-net-policy-vlan=1
/ipv6 settings
set disable-ipv6=yes
/interface detect-internet
set detect-interface-list=all
/interface list member
add interface=ether1 list=WAN
add interface=bridge1 list=LAN
/interface wifi capsman
set ca-certificate=auto enabled=yes interfaces=bridge1 package-path="" \
require-peer-certificate=no upgrade-policy=none
/interface wifi provisioning
add action=create-dynamic-enabled disabled=no master-configuration=\
"Hector 5GHz" slave-configurations="" supported-bands=5ghz-ax
add action=create-dynamic-enabled disabled=no master-configuration=\
"Florry 2GHz" supported-bands=2ghz-ax
/ip address
add address=10.62.14.1/24 comment="LAN range" interface=bridge1 \
network=10.62.14.0
/ip arp
add address=10.62.14.42 interface=bridge1 mac-address=98:06:3C:24:AB:C9
/ip cloud
set ddns-enabled=yes ddns-update-interval=20m
/ip dhcp-client
add interface=ether1 use-peer-dns=no use-peer-ntp=no
/ip dhcp-server network
add address=10.62.14.0/24 dns-server=94.140.14.49,94.140.14.59 domain=\
(domain) gateway=10.62.14.1 ntp-server=10.62.14.1
/ip dns
set servers=94.140.14.49,94.140.14.59
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN
/ip smb shares
set [ find default=yes ] directory=/pub
/system clock
set time-zone-autodetect=no time-zone-name=America/New_York
/system identity
set name=rtr1
/system logging
add action=email topics=critical,warning,account
/system note
set show-at-login=no
/system ntp client
set enabled=yes
/system ntp server
set enabled=yes
/system ntp client servers
add address=0.pool.ntp.org
add address=1.pool.ntp.org
add address=2.pool.ntp.org
/system routerboard settings
set auto-upgrade=yes enter-setup-on=delete-key
Additionally, to answer my own question earlier, I retain the ability to use station-bridge clients, which is important for my setup. They work just fine after this implementation.