Update:
It appears the information below, while helpful, do not actually resolve the issue. The best resolution at this time, at least for me, is still just to unplug any USB controller when not in use.
My guess is the analog drift, while not relayed in controller movement, is still recognized by the OS as activity. However, the steps below are still helpful for resolving other issues related to drift, so I will leave them here.
I recently dug out one of my old game controllers (Saitek P880) and started experiencing this problem. It took a while just to get to this level of troubleshooting, so I appreciate all the hard work everyone did to get us to this point.
In my case, the issue was caused by an erratic analog axis sensor, causing the analog axis to drift (actually, more like swap between two different values rapidly). Sometimes rebooting or disconnecting the controller will cause the issue to temporarily go away, but eventually the drift will return. The Windows USB Game Controllers control panel does not have a built-in capability to adjust dead zones.
However, at least in the case of Saitek, their website still includes 32-bit and 64-bit drivers that work in Windows 10, including for my P880. Once the drivers are installed (reboot required), the control panel is updated with a much better representation of the buttons and functions, as well as a new tab to manually set the deadzone.
Bear in mind the files must be retrieved using the FTP protocol, and since this functionality is slowly being removed from the latest browsers, you may need to consider using an alternative utility (such as WinSCP) to retrieve them.
Here are two images showing the updated control panel with deadzone modified. You can right click any of the axes controls and uncheck "Link Deadzones" to more granularly control the deadzone range.
Images
