Already mentioned in other replies, but you can just run SQM on the separate links and load balance those using mwan3. These are my mwan3 rules to balance a BVVDSL and DOCSIS connection:
https://i.imgur.com/eAd4Bl5.png
Unsticky for ports that can be safely balanced without stickiness (e.g. steam downloads on port 80)
CB is the cable modem
sticky_even for consistent HTTPS connections based on even LAN IP
sticky_odd for consistent HTTPS connections based on odd LAN IP
default_rule balances everything else across the links with a 10m sticky timeout