When the problem first arose it gave full recursiveness, ie ; if I kept processing it came back again every time so it led to stack overflow.
However, you set me onto something ; Maybe the problem was that some of those dispatchers is using a sequence of 'first call, then remove' on the jobs/messages it dispatches? In that case it is clear that recursiveness would spin out of control.
I will try your approach and see if I can tweak any dispatchers into doing 'pop job first, then call it'