You are missing some configuration required by Burn to start up the custom BA. If initializing and loading of you BA fails it starts the prerequisite installer. In your case .Net Framework.
You have to add a "BootstrapperCore.config" file as payload in order to get your custom BA running. The BoostrapperCore.config tells the burn engine how to initialize your custom BA.
Your BootstrapperApplicationRef should look like this
<BootstrapperApplicationRef Id='ManagedBootstrapperApplicationHost'>
<Payload SourceFile='MyBA.dll' />
<Payload SourceFile='BootstrapperCore.config' />
</BootstrapperApplicationRef>
Content of BootstrapperCore.config file:
<configuration>
<configSections>
<sectionGroup name="wix.bootstrapper"
type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup, BootstrapperCore">
<section name="host"
type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection, BootstrapperCore" />
</sectionGroup>
</configSections>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
<wix.bootstrapper>
<host assemblyName="MyBA">
<supportedFramework version="v4\Full" />
<supportedFramework version="v4\Client" />
</host>
</wix.bootstrapper>
</configuration>
Write the name of your assembly without extension to attribute "assemblyName".
Also make sure that you add the following entry to the assemblyinfo.cs of your BA Assembly, where MyNamespace.MyBA is the name of the class including the full namespace name which you derived from WiXBootstrapper.BootstrapperApplication
[assembly: BootstrapperApplication(typeof(MyNamespace.MyBA))]