The Construct event going to the sound spawner function appears to have ‘auto destroy’ checked. I think when you fire the ‘Fade Out’ function, it could be getting a null\invalid reference.
I believe if you just toss the sound return value into its own variable then relocate the fade to reference the variable, that should help. You can also try checking the ‘Persist across level transition’ boolean, but I think that’s more for continuous play throughout a level migration.
In regard to how you are loading your level - confirm in the ‘Levels’ panel, that for each streaming level you have the ‘streaming method’ set to ‘Blueprint’. Im almost certain this is the default behaviour, so likely has nothing to do with this particular issue, but still a good thing to double-check.
If you were to use the LoadSteamLevel function, I believe that can go just before the ‘OpenLevel’ function
(Edit: I just noticed the 'Make Visible bool. So I’d assume this should work fine.)
After the loading screen is tossed onto the viewport, what do you do with that widget?