Any custom action that changes the system sequenced after InstallFinalize is by definition an error in design. I would also be careful with custom actions that show messages and inspect the system. They should NOT return error codes at least, or a full rollback of the install might occur - this is particularly unfortunate for major upgrade scenarios (may leave two versions of a product registered, but only one installed).
Custom actions after InstallFinalize always fail in some contex which you cannot predict - often when the package is deployed via deployment system such as SCCM (SMS) or similar. Generally the custom actions after InstallFinalize are skipped or trigger unexpected rollbacks of the entire installation. They will also fail consistently when run without full administrator rights.
What kind of registry operations are you performing? They should be easy to implement in other ways.