Proper way to manage Level Loading Transitions

Hi devs,

I am currently wondering what is the proper way to manage the Level transitions in my game.

I come from Blueprint Scripting, and the method I always used is Level Streaming: having a Persistent Level with all my sublevels, loading the required levels via blueprint whenever I need them.
This is a pretty straightforward workflow if you have a small game with a MenuScreen and Game sublevels where your game takes place (eg. your standard mobile game)

But if you have something more complex, like a big adventure game with different areas and chapters, suddenly having all your levels loaded inside a big Game map doesn’t sound like the best approach.

Doing a bit of research (mainly through ActionRPG and ShooterGame projects in the marketplace), I discovered that a common approach is using the Movie Player like a Loading Screen, transitioning between levels using the OpenLevel node, which will hang the game thread, issuing the movie player on its own thread, resulting in a seamless and animated loading screen during the loading of the level.

What is bothering me is that the Movie Player is based on Slate, which, as far as I know, is pretty much deprecated for creating UIs, and is far less documented then UMG.

Previously for my small projects, I would have used the Level Streaming Blueprint Nodes to load between levels, showing a UMG widget during the loading phase, having the ability to insert animations, listening for inputs and having any kind of logic inside my loading screen. In the Slate Movie Player, all I can do is show a movie and display an icon, which is not bad but kinda restraining.

Am I on the right track for managing Level Transitions for big projects using MoviePlayer?
Are there any tutorials/projects that showcase the possibility of using Slate? Mainly regarding input management, progress bars, 2d animations (like UMG), etc?