Hi Dave,
the problem are not complex pages, but the overall load form *all* queries that add tracing information to the shared nsv variables that the developer support uses. One will see such messages only from busy sites, and not when running complex queries on non-busy sites.
I've added the "wait duration" output a few years ago to naviserver to raise the awareness of developers, what's going on. It is actually a very nice feature compared to other systems, which are silently coming to a crawl in such situations. You should consider using nsstats [1] and the munin plugins [2], where nsstats provides among other things a mapping from nsv-names to mutexes, and the munin plugins are nice to show, what is for a site a usual/unusual traffic of mutex locks, busy mutex calls, mutex waits, etc.
The busy mutex locks on nsvs will not create deadlocks. However, it is not recommend to let the developer support (with db query tracking) running on busy site for longer time, since it will slow down the system. On the longer range, we could consider to add optionally a per-session mode to the developer support, such that it tracks only the queries of one session, and not the queries of the overall system. That would improve the lock congestion on the nsvs considerably, while covering some of the important use-cases.
all the best
-g
[1] https://bitbucket.org/naviserver/nsstats
[2] https://github.com/gustafn/munin-plugins-ns