

Impossible to say, could be the app is doing something funky, could be iOS, could be lotta things.
I will note, my preferred solution is to do none of the above, and I only do split DNS for one particular service. I much prefer just using an always on Wireguard VPN that is set to only route traffic to my internal subnets and to use my internal DNS server. Then I just use internal names. Wireguard basically runs at line rate on my setup, so half the time I don’t even turn it off at home. This also gives you the option to use DNS ad blocking (eg adguard) on the go.
I really like Zoraxy. Similar to NPM but it’s its own thing and I like it a lot more
I know how to use raw nginx/Caddy/traefik to do it, but I find the WebUI and all the extra features Zoraxy has to be very convenient and easy to use.