Minimize time in lock during Dispose() to reduce contention