What might explain this nslookup error from Windows 10 using pihole for local DNS?

Solution 1:

Why does it show a "DNS request timed out" but then apparently succeed?

Because it does two DNS requests – one for AAAA records and another for A records (to retrieve IPv6 and IPv4 addresses respectively). The first timed out but the second returned one IP address.

Normally if a website doesn't support IPv6 and doesn't publish any AAAA records in DNS, the AAAA query will still succeed, just return zero records of the requested type.

However, some "network protection" software, as well as some VPN software, have the ill-advised feature of completely blocking queries for AAAA, such that they either return a fake SERVFAIL error, or don't return any response at all (forcing the client to wait until timeout). Make sure nothing like that is enabled.

Or, as Pi-Hole uses dnsmasq, it might also be the case that adding a local DNS entry no longer completely overrides all record types for that entry – that is, I'm suspecting that instead of directly returning "0 AAAA records", it ends up forwarding the AAAA query upstream (to your ISP's DNS servers) or something like that.

Take a look at Pi-Hole's recent DNS queries list to see what's happening.