I should mention that I set the x and y to be slightly on the side of next level's exit object, to avoid the infinite teleporting. But I suppose it's actually more versatile to have a destination object ( like you do) instead of setting the x and y. That way if you change the level you don't have change the coordinates in a lot of places, but rather just move the object.
Yeah, that versatility and making level-building easy was what I was going for, but if I can't get that to work, at least your method works!
Although, you could probably set something up so that when the layout loads, or on start of layout, each exit variable is set to whatever the sprite's X and Y coordinates are, so it is automated like my method but thorough enough to work like your method...
EDIT: Ignore the preceding paragraph because I'm an idiot.
Also, I got it to work using mindragon73's method, but adding a variable called ExitAvailable that is made false on start of layout, and then made true once the player is no longer overlapping an exit sprite. Thanks everybody!