The inherent problem is that the default update_nonmoving method of Game_Player processes vehicle enter/exit code when enter is pressed, so it overrides event interaction.
If you simply overload that with code that processes a map transfer, you would no longer be able to get on and off vehicles.
What I would probably do is either hard code a one-off coordinate check into the vehicle exit script to see if the airship is above the crater on the appropriate map (which is a bit of a clunky and convoluted solution) or have a parallel process event checking the player coordinates on that map, and transfer the player to the crater map as soon as their X and Y is equal to the crater while they're riding the airship.
I'm sure one of the more experienced scripters will have an elegant solution.