Leaving level, then re-entering quickly causes level to unload while player still in it

Have any of you ever had this problem? How did you deal with it? My Kismet logic looks like this:

Event to leave level
Set boolean OK_to_LoadLevel = false
Teleport pawn to new level
Unload old level
Garbage collection
Delay 1 second
Set boolean OK_to_LoadLevel = true

And my Kismet logic for loading the level is now this:

Event to load level
Check boolean OK_to_LoadLevel (If true, proceed. If false, do nothing.)
Load new level
When finished, teleport pawn to new level

That seems unnecessarily complicated. But I’m going to try it out for a bit and see if it works.