Remove potential deadlock with broken connectors

Replace synchronized lock with a custom lock with timeout support

For close and updateSource stage change and then attempt to acquire
lock.  If lock is acquired, process change; otherwise lock holder
will process change before releasing lock.

For close, if lock can not be acquired, interrupt lock holder.