Sorry, I have deleted my earlier reply, because just after I posted it I realized what could be the actual problem.
Yes, this is the first thing I tried, but it did not help at first.Have you tried adding your 3rd party plugin to the plugins section in the project file yet? Just open the .cryproject file with a text editor like Notepad++ or Visual Studio Code and add the plugin like this:
I made more experiments, and found something interesting. It appears, that it all depends on the timing when we access the library. Because it seems to be possible to access it before it gets copied to the temporary folder. For example, assuming there is class ImportedType from the 3rd party library, if I create a local variable of that type in my plugin's Initialize() method, it crashes with "System.IO.FileNotFoundException: Could not load file or assembly...". However, if I move that local variable into plugin's OnLevelLoaded(), then it works correctly.
If I have a member variable of ImportedType anywhere in one of my classes, then it crashes even earlier, when the engine is scanning plugins, hence the error in CryEngine.Engine.ScanAssembly.
So, after all that it suddenly hit me, and I tried to rearrange the list of plugins in Game.cryproject, and put dependencies earlier in the list, before Game.dll. And it started to work!
TBH not sure if this may be considered a bug, from my perspective engine could perhaps detect dependencies beforehand and alter the order of scanning to prevent problems.
Is it a known issue?