The solution was actually pretty easy. Before="CostFinalize" installs the features in the "preparing" dialog.
<CustomAction Id="InstallIISCA" Return="ignore" Property="DISMPFAD" Execute="oncePerProcess" Impersonate="yes"
ExeCommand="/online /enable-feature /all /featurename:IIS-WebServerRole /featurename:IIS-WebServer /featurename:IIS-CommonHttpFeatures /featurename:IIS-StaticContent /featurename:IIS-DefaultDocument /featurename:IIS-DirectoryBrowsing /featurename:IIS-HttpErrors /featurename:IIS-ApplicationDevelopment /featurename:IIS-ASPNET /featurename:IIS-ASPNET45 /featurename:IIS-NetFxExtensibility /featurename:IIS-NetFxExtensibility45 /featurename:IIS-ISAPIExtensions /featurename:IIS-ISAPIFilter /featurename:IIS-HealthAndDiagnostics /featurename:IIS-HttpLogging /featurename:IIS-LoggingLibraries /featurename:IIS-RequestMonitor /featurename:IIS-Security /featurename:IIS-RequestFiltering /featurename:IIS-HttpCompressionStatic /featurename:IIS-WebServerManagementTools /featurename:IIS-ManagementConsole /featurename:IIS-IPSecurity /featurename:WAS-WindowsActivationService /featurename:WAS-ProcessModel /featurename:WAS-NetFxEnvironment /featurename:WAS-ConfigurationAPI /featurename:WCF-NonHTTP-Activation /featurename:WCF-Pipe-Activation45 /featurename:WCF-TCP-Activation45 /featurename:WCF-TCP-PortSharing45 /featurename:WCF-HTTP-Activation45" >
</CustomAction>
<InstallUISequence>
<Custom Action="InstallIISCA" Before="CostFinalize" Overridable="yes">NOT Installed AND (VersionNT > 601)</Custom>
</InstallUISequence >