Should this be TryRemove here since it's a `ConcurrentDictionary`? Something like:

```cs
while(keyedGates.TryRemove(key)) {};
```