Use an array instead of Enumerable.Repeat when return single value Enumerables.
Avoid deadlocks by changing Dispose() to be async void. That if we ever crash at least we take the whole application with us.