The underlying `SemaphoreSlim.WaitAsync` already supports cancellation. Can a parameter be exposed to pass a token down to this line? https://github.com/dotnet/reactive/blob/5f831de0bc70bc660d21c3b9e04e581269691a2a/AsyncRx.NET/System.Reactive.Async/Threading/AsyncGate.cs#L35