DNSscript and issues with local devices

Hi,
I had set and enabled a DNSscript to switch between DNS server IPs.
Here is the original one:

/system scheduler
add interval=30s name=DNSscript on-event=":local currentDNS [/ip dns get serve\
    r]\r\
    \n:local piholeDNS \"192.168.3.12\"\r\
    \n:local backupDNS \"1.1.1.1,1.1.1.2\"\r\
    \n:local testDomain \"www.google.com\"\r\
    \n\r\
    \n:if (\$currentDNS = \$piholeDNS) do={\r\
    \n    :do {\r\
    \n        :resolve \$testDomain server \$piholeDNS\r\
    \n    } on-error={\r\
    \n        /ip dns set servers=\$backupDNS\r\
    \n        /ip dhcp-server network set [find] dns-server=\$backupDNS;\r\
    \n    }\r\
    \n} else={\r\
    \n    :do {\r\
    \n        :resolve \$testDomain server \$piholeDNS\r\
    \n        /ip dns set servers=\$piholeDNS\r\
    \n        /ip dhcp-server network set [find] dns-server=\$piholeDNS;\r\
    \n    } on-error={}\r\
    \n}" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-date=aug/15/2020 start-time=07:59:53

Since I want my Mikrotik dns->server to stick with 1.1.1.1,1.1.1.2, I modified the script this way in order to make only
dhcp-server > network >dns server change :


:local currentDNS [/ip dhcp-server network get [find] dns-server]
:local piholeDNS "192.168.3.12"
:local backupDNS "192.168.3.1"
:local testDomain "www.google.com"

:if ($currentDNS = $piholeDNS) do={
    :do {
        :resolve $testDomain server $piholeDNS
    } on-error={
        /ip dhcp-server network set [find] dns-server=$backupDNS;
    }
} else={
    :do {
        :resolve $testDomain server $piholeDNS
        /ip dhcp-server network set [find] dns-server=$piholeDNS;
    } on-error={}
}

they both work.
In the first case, if my pihole dns server is down the dns ip switches to 1.1.1.1, 1.1.1.2 both in ip->dns-> servers and in IP->dhcp server->network->dns server,
In the second case only dhcp server->network->dns server change.
However, I have some issue with the second script. I have to run ipconfig /renew on my Windows pc to make it use the backup dns server each time.
Is there a way to get around this problem?
Thanks

It’s expected behaviour, changes in DHCP config don’t take effect instantly, only when client renews lease. You can shorten lease time, but I’m not sure if some clients won’t have problems with something too short. If you want immediate reaction, then don’t do anything with DHCP, but do some redirection on router instead.