Other than that I have to say it really runs quite well already with nftables. The resulting rules seem to work just fine. SQM QoS seems to be missing support but that will be a matter of time I guess.
I tried using iptables-translate to help, which doesn't appear to be available on OpenWRT, but that didn't help. I looked at Firewall4 / NFtables Tips and Tricks - #59 by noblem which led me to try this, which worked:
That second rule is definitely wrong; it's supposed to be deleting the rule, and you're just inserting it again (so you'll accumulate rules on each run, and also leave port 80 open).
Sadly nft doesn't support deleting a rule based on its content, so we'll have to capture the handle and use that to delete.