If you can’t figure out why your external device won’t disconnect safely, here’s a quick way to find all the processes that are using it:
Download Process Explorer and go to find > Find Handle or DLL (CTRL + F) – type in your drive letter and hit search. You may get a ton of results (every process that contains that letter…) but all you have to do is sort the results by clicking on the “Handle or DLL” column, and scroll down to the drive letter. You can then click on the process, and it will be automatically selected in the main Process Explorer window (where you can then right click it and select “Close Handle”).
Personally, none of my processes would close, but I was successful in safely ejecting the device anyways after trying.