(from AES) Use a second lock to arrange for diagnostics to be generated _without_ holding the config lock
(from AES) Use a second lock to arrange for diagnostics to be generated _without_ holding the config lock

With this change, we should only ever hold the config lock literally long enough to swap pointers in the IR.

datawire/ambassador,datawire/ambassador,datawire/ambassador,datawire/ambassador,datawire/ambassador