The pseudo code as posted will certainly fail. The CLR remembers previous Assembly.Load() failures and will fail them consistently afterwards, even if the assembly became available.
It isn't clear why you attempt to load the assembly again. Get ahead by either assuming it is properly installed if the install didn't fail or just always install and leave it up to the installer to detect that the assembly is already present. If that's not practical then you need to use the IAssemblyCache interface to check for presence, QueryAssemblyInfo() method.