The difference between running the MSI directly or using a Setup.exe is the point in the sequence the user rights get elevated.
if you run the Exe, you will probably recieve a UAC Popup requesting more rights, you click OK and everything will run elevated(with admin rights).
if you run it from an already elevated command prompt also everything will run elevated.
if you run the msi normally(e.g. doubleclick it) it will run through the whole installUIsequence then it will run through the installexecute sequence and when it reaches the InstallInitialize Action it will request elevated rights.
and as soon as the InstallFinalize action is run the rights are dropped.
so you need to place the custom actions which need admin rights after the InstallInitialize and before InstallFinalize action