public void StartEventLoop(CancellationToken token = default)
        {
            if (isLooping)
            {
                return;
            }
            isLooping = true;
            _loopTokenSource?.Dispose();
            _loopTokenSource = CancellationTokenSource.CreateLinkedTokenSource(token, _internalSource.Token);
            var loopToken = _loopTokenSource.Token;

            loopTask = Task.Run(() =>
            {
                while (isLooping)
                {
                    if (EWaiter.WaitForEvent(loopToken))
                    {
                        try
                        {
                            var returned = EQueue.StartEvent();
                            AppendAwaitCompletion(returned.CommandTask);
                        }
                        //TODO: DO SOMETHING WITH THIS!
                        catch { }
                    }
                }
            });
        }