So I suspect that 'slow Internet' is pretty much slow DNS responses but I am not sure how to prove this.
The core questions is really why my SME server is needing this many 1000's of sessions for DNS? It does not sound right to me.
Is this some sort of cache that is being refreshed? If so can I wipe such a cache to start with a clean slate?
Emptying the DNS cache will only make DNS lookups take longer, because your server won't have any cached records.
You shouldn't do anything until you diagnose your problem.
If you think name resolution is causing Internet access to be slow for your users then you should study dnscache logs to see how much elapsed time there is in resolving some names.
The dnscache logs themselves aren't really human readable, but a script is provided which preprocesses the logs so that they are understandable.
You can view the log like so:
sudo cat /var/log/dnscache.forwarder/current | sudo perl /service/dnscache/dnscache-log.pl | tai64nlocal | less
You will then see what names are being resolved, and what the progress is in doing so.
When I look at my logs, most of the log entries I see are related to DNS blacklist lookups by qpsmtpd.