The bootstrapper definition of the 'WixBootstrapper_NoU' sample code it extremely simple. You can always generate it with
As I can tell there is not much here can go wrong. The fact that the bundle installs NetFx40Web indicates that the custom UI successfully started and the only problem is that after the first step (NetFx40Web) it doesn't carry on to the next one (My Product.msi). Ony would suggest the bootstrapper items dependencies and conditions are wrong (e.g. My Product.msi can only start when .NET4 is present but the presence is checked only before the first step). But unlikely.
If you run out of options you can try to base your solution on WixBootstrapper_UI sample. It is the same bootstrapped with custom UI as the silent one, except in this case it has a visible WPF Window. With this approach you can intercept and analyse your OnDetectPackageComplete and OnPlanComplete events. So you know if My Product.msi was even triggered.
You can even completely abandon your msi UI and do the all job in the bootstrapper UI. For example collect user installdir selection, push it to msi.
bootstrapper.BuildCmd();
:<?xmlversion="1.0"encoding="Windows-1252"?><Wixxmlns="http://schemas.microsoft.com/wix/2006/wi"><BundleName="My Product"UpgradeCode="6f330b47-2577-43ad-9095-1861bb25889b"Version="1.0.0.0"><BootstrapperApplicationRefId="ManagedBootstrapperApplicationHost"><PayloadSourceFile="..\..\..\VSProjects\bin\Debug\WixSharp.UI.dll"/><PayloadSourceFile="BootstrapperCore.config"/><PayloadSourceFile="..\..\..\VSProjects\bin\Debug\Microsoft.Deployment.WindowsInstaller.dll"/></BootstrapperApplicationRef><VariableName="_WixSharp.Bootstrapper.SilentManagedBA.PrimaryPackageId"Value="My_Product.msi"Persisted="yes"Type="string"/><Chain><PackageGroupRefId="NetFx40Web"/><MsiPackageName="My Product.msi"Id="My_Product.msi"DisplayInternalUI="yes"SourceFile="My Product.msi"/></Chain></Bundle></Wix>
If you run out of options you can try to base your solution on WixBootstrapper_UI sample. It is the same bootstrapped with custom UI as the silent one, except in this case it has a visible WPF Window. With this approach you can intercept and analyse your OnDetectPackageComplete and OnPlanComplete events. So you know if My Product.msi was even triggered.
You can even completely abandon your msi UI and do the all job in the bootstrapper UI. For example collect user installdir selection, push it to msi.