Indeed the system works as you described above from the OpenWrt docs - checked it.
The culprit is AdGuard Home. Once I start forwarding DNS requests to this app, OpenWrt system time is no longer updated.
Other than DNS forwarding, the only setting changed are new custom rules in firewall:
iptables -t nat -A PREROUTING -i br-lan -p udp --dport 53 -j DNAT --to [AdGuard Home IP : port]
iptables -t nat -A PREROUTING -i br-lan -p tcp --dport 53 -j DNAT --to [AdGuard Home IP : port]
I do not immediately see why AdGuard Home is preventing getting correct system time from default servers. Probably, the question belongs to AG forum rather than OpenWrt forum.
It is best to enable split DNS and configure DNS forwarding to the AdGuard socket.
Then resetting interface DNS settings to defaults should solve the race condition.
I am afraid my knowledge of OpenWrt and DNS/DHCP is not sufficient to fully understand the execution of the idea. I checked the "Ignore resolve file" in LuCi, forwarding to AGH socket has been set. But to no avail...
Did you mean split DNS as a fallback when AGH is not available? Or splitting requests between AGH and rooter depending on the request type? I have the rooter set as DHCP, not AGH.