First, there shouldn't be another event since it is not, it's a behaviour of event.
I'm not sure but this was somewhere discussed and, probably, in next standard there will be a flag to delay event listeners (call them only once). Can't find any links right now and don't remember details.
Nevertheless, in such cases, as per perfomance issues, you OF COURSE should call any type/mouse events only after X ms delay, and only then start doing any heavy DOM or server calls. This is done with a simple Vanilla JS technique you already know.
To make a life a bit easier I have in BunnyJS DOM event utils - addEventOnce
You can also use CDN <script src="unpkg.com/bunnyjs@0.11.0/dist/utils-dom.min.js&qu…
P.S. I also have some useful helpers like onClickOutside
cc @maruru