However I have a question, it looks like the game end event executes everything linearly (not like a step)
EVERYTHING in ENIGMA executes linearly. Including step event. So of course you cannot drawn anything from game end event to the screen, just like you cannot do it from step or key press. Drawing happens in draw event. What you want is "Close button" check event and Esc key event. There you check if the user wants to close your game. Then you set a variable like "close_popup = true; alarm[0] = room_speed*3;" and in draw event do "if (close_popup == true) draw_text("Game will end in 3 seconds!");". In alarm[0] you just put game_end(). Or you can just do "room_goto(room_end);" and then have an alarm to end it there.
So what game end event does is call the event when the game ends (magical, isn't it?). And after that event there isn't any other event. So no drawing, no step, no alarm, nothing. It's the last event your game calls. So you shouldn't add text prompts in there. The point of game end event is to release resources, change back resolution, write save to file and so on.