Pi-hole will forward the request to an upstream once and cache the response. Next time (within the TTL) pi-hole will answer the same request with the cached information.
Actual Behaviour:
All the sequential requests for the same name are forwarded to dnscrypt-proxy, noticed in the pi-hole log and by high response time in dig executed on client's host (~20ms vs. 1-2ms).
Switching to Cloudflare resolver (w/o intermediary) or cloudflared as a proxy solves the problem.
What is the time interval between subsequent requests for the same name?
When you dig the domain through dnscrypt-proxy, what is the returned TTL? And, if you do the same going to Cloudflare directly, do you get a different TTL?
Does this mean that your dnscrypt-proxy answers within 0msec but your pihole-FTL still shows a notable delay? (see this question - for now - apart from the issue that the query is forwarded each time instead of being cached by pihole-FTL itself)
Noticed that as well. I believe that was a result of caching in the dnscrypt-proxy itself, disabled it already.
Here is the recent result:
$ dig bbc.com @127.0.0.1 -p 5353