Not quite. You can stop the map engine in its tracks and do some things in the middle.
If you want the game to pause, it's fine to get into some closed loop, like in the third bullet point mentioned. The map engine will only continue once it exits that loop (it's when you actually need the map to continue as normal that this situation would be suboptimal... But not in a case where you're doing other stuff over a pic of the map or while the map engine was still running, anyway). So something like this very simple, very crappy example:
function MyTitleScreen() {
while (true) { //Map engine is paused while in this loop... or rather, it doesn't even get the chance to continue, Sphere being stuck here...
RenderMap(); //Display the last known picture of the map
font.drawText(100, 100, "Game Title!"); //Drawn on top of that picture
//Other drawing stuff maybe
FlipScreen(); //Now put it on the screen
if (GetKey()) break; //Break out of the loop and continue the map engine if any key is pressed
//Keep loopin' otherwise!
}
}
And then in some place, you invoke MyTitleScreen(). Not as a render script, but as a regular function call.
On a side note, UpdateMapEngine() manually updates the map engine, so you can make the stuff that was happening on the map still update during that closed-off loop. You'll mostly notice it with animated tiles and persons if you do that.
Edit: updated.