I think it would be nice to have some function to know this from the engine part (you should open a request issue on github). This should be a function of the "camera" entity (or the"game" entity) to get this state. A new event "map:on_opening_transition_started(destination)" could also solve the problem.
At present I think there are very few solutions, and all of them quite dirty. On solution would be to automatically replace teleporters by custom teleporters (which allows fully customization for small details lile this). I can post the last version that I use for custom teleporters if you decide to make this as a workaround (it does work perfectly without issues). (I use custom teleporters to allow jumping over teleporter-stairs without activating the teleportation, like in Link's Awakening.)
EDIT: jumping over a teleporter is allowed for the built-in jump, and that is what the engine does. However I use a custom jump, so I am forced to use custom teleporters to allow jumping over them.