I’d like to join in this discussion.
We have a similar problem as the OP.
When a player joins the server, his data has to be loaded from MySQL through a socket server to determine character type. We do this in GameMode on PostLogin. This, of course, takes a second or two and, as the OP said, the 0,0,0 location is displayed briefly until the character is spawned at its logout location.
If I understood your post correctly, you were suggesting filling the screen on controller BeginPlay with a widget? I just tried this and while the widget will display, there is still a brief but noticeable flash of the origin.