I found the solution. Following instructions from this thread, I set the following DNSmasq options on the ddwrt router:
server=piholeIP
cache-size=2048
log-async=5
#strict-order
dhcp-option = 6,PiholeIP
On the pihole, I kept these settings as usual
What solved the problem is to enable the DNSmasq ("use DNSmasq for DNS") on the dd-wrt. However, when that's enabled, the forced DNS direction doesn't work.
So, every month or so, I will enable DNSmasq on the router main page, let pihole get the hostnames for all clients, then disable "use DNSmasq for DNS". I'm happy having the list update once month. I don't have that many new clients anyway.
Thanks!