tweak iterator locking to remove leak and deadlock issues.

 - busy-wait a little to avoid a deadlock with bounded latency hit
 - rework how objects are killed to avoid giving dead stuff out via the iterator

fixes #181