Good that you’re referring to docs and forum answers, but you have missed the best of them all:
UE4_Network_Compendium_by_Cedric_eXi_Neukirchen.pdf (1.6 MB)
As you said it’s good to use the convenience functions already implemented and not try to reinvent the wheel. The functions you mentioned in GameMode are a great example of what you want. Now how you fire those functions is more of a game design question, but it’s 100% going to happen after a player’s pawn dies. So, you will have the following pipeline in your code:
PawnRecieveDamage()->Health<=0->PawnDead()->Fire X seconds timer and when expired fire RestartPlayer().
All the above logic will happen on server, as it’s all authority stuff.
Custom events in BP are just functions in C++. It’s good to refer to this and this if you’re moving from BP to C++.