I would not recommend to follow that post you've linked, as it does not address those max concurrent warnings at all, it just throws more resources at it. That's similar to throwing more wood in the broad direction of smoke instead of trying to find the fire.
Often, Maximum number of concurrent DNS queries reached is triggered by a DNS loop configuration.
Occasionally, an unreachable or unresponsive upstream DNS server could have Pi-hole exhaust its connection pool quickly while waiting for unanswered forwarded queries to complete.
And less often, a misbehaving client excessively requesting resolution for a set of domains in rapid succession could also trigger it.
Your debug log shows your router to distribute itself as local DNS server:
*** [ DIAGNOSING ]: Discovering active DHCP servers (takes 10 seconds)
Scanning all your interfaces for DHCP servers
* Received 300 bytes from eth0:192.168.1.1
Offered IP address: 192.168.1.10
DHCP options:
Message type: DHCPOFFER (2)
dns-server: 192.168.1.1
router: 192.168.1.1
This is a valid configuration, as long as your router would be using Pi-hole as its sole upstream DNS server. However, as Pi-hole would receive all DNS requests from your router, you won't be able to attribute DNS requests to individual clients in such a configuration (and consequently, to take advantage of client-specific filtering).
Of course, this would make it harder to identify an excessively requesting client.
Your debug log shows Pi-hole's Conditional Forwarding as disabled, which is good, as enabling it in that configuration would have closed a partial DNS loop.
Regarding other possible loops:
Would that apply to one of Pi-hole's upstreams as well (9.9.9.9 or 149.112.112.112)?
Then that would close a DNS loop.
To avoid that, your Pi-hole machine has to be exempted from those DNS redirection rules.
Your debug log shows a few instances where concurrent queries where maxed out:
*** [ DIAGNOSING ]: contents of /var/log/pihole
-rw-r--r-- 1 pihole pihole 13K Oct 26 22:20 /var/log/pihole/FTL.log
-----head of FTL.log------
(...)
[2024-10-26 04:02:23.412 658M] WARNING in dnsmasq core: Maximum number of concurrent DNS queries reached (max: 150)
[2024-10-26 04:02:32.549 658M] WARNING in dnsmasq core: Maximum number of concurrent DNS queries reached (max: 150)
[2024-10-26 04:02:42.232 658M] WARNING in dnsmasq core: Maximum number of concurrent DNS queries reached (max: 150)
[2024-10-26 04:03:09.115 658M] WARNING in dnsmasq core: Maximum number of concurrent DNS queries reached (max: 150)
You could take a closer look at the DNS replies immediately preceding those warnings, e.g. by running:
pihole-FTL sqlite3 /etc/pihole/pihole-FTL.db "SELECT domain, reply_type, client, count(*) FROM queries \
WHERE timestamp > strftime('%s','2024-10-26 04:03:09.115', '-5 minutes', 'utc') \
AND timestamp <= strftime('%s','2024-10-26 04:03:09.115', 'utc') \
GROUP BY domain, reply_type;"