public async Task StopAsync(CancellationToken cancellationToken) { await _communicationListener.StopAsync(cancellationToken); // TODO: wait for outstanding transitions to complete }