Changed ConcurrentQueue to remove last ref/value. Fixes 18421

Test that ConcurrentQueue does not keep old references.
Fix: Overwrite dequeued ref/value with default.
Other changes: TryPeek now makes sure that head has not been changed before returning.