More from inside the walls..  From the dev that owns the loader...

AppDomain.Load() is only meant to be called on the current AppDomain (for use by Interop callers).  If you call it on a different AppDomain, if the assembly successfully loads in the target appdomain, it will then be loaded in the current appdomain, causing the FileNotFoundException for you.
If you need to execute an exe, you should use AppDomain.ExecuteAssembly() instead.  Otherwise, you should change to use Assembly.Load() from within the target appdomain.  To do that, create a type which extends MarshalByRefObject in the target appdomain, and call Assembly.Load() from a method in that type.  Be sure to not pass any types/assemblies (besides your MarshalByRefObject type) back to the original appdomain.  See http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx#_Toc514058497 for more info on how to do that.