Reduce lock lifetime in TCollection::GarbageCollect

This avoid the potential for unnecessary nested locks
when/if the routine actually deletes the object.