If you want to avoid “long polling” then MQTT isn’t the answer (it’s still a long held TCP connection waiting for messages). UDP would be the way to go, and with WireGuard as a carrier you don’t have to worry about NAT traversal issues (and get privacy as a bonus).
Love the project - would have been great when my kiddos were that age.