The fade out event will start the fade out timeline in the main scene. For this example, we'll assume a trigger in some active scene raises the events when the player enters the trigger. First I raise the fade out event, and then i raise another event called "Load Weapon Shop" or something. Anyway, say the player opens a door that acts as a transition to another scene.
#Stardew valley save editor jit debugging code
there are plenty of tutorials already out there, but the tl dr is that it is a variable that points to a piece of code that you (the caller) want the function (the callee) to call for you sometime in the future. I will not attempt to describe delegates / callbacks / anonymous functions / actions. This is a similar principal to how the CallAfterDelay function works above. You may have to reorganize sequencing so that when you reach the door, a fade is started with a second "follow on" delegate that the fade routine calls when it is done. If you are moving the player before the fading is done, that would cause a visual glitch, and this would let you know that's what is happening. Single-stepping lets you inspect the hierarchy to see what scenes and objects are loaded, and also see the Debug console so you can output more Debug.Log() lines there to understand what is going on.
Now don't un-pause it but rather single-step it and see what happens the next frame. If you really can't find any problems of that nature, then all I can suggest is standard debugging techniques-add Debug.Log() calls to verify what's happening, or step through the code in a debugger, etc.