FYI.  I plan to submit a fix to SharpDX to provide `Controller.GetCapabilities()` that returns false when the gamepad is not connected.  This is a natural feature of the low level XInput API that we should be using.  Under the hood `Controller.IsConnected` is actually calling `Controller.GetState()` which is a waste of CPU time.