¿Puedes describir el bucle de eventos de JavaScript de una manera simple?

No hay un bucle de eventos per se.

JavaScript es solo un lenguaje. Node.js y los navegadores web, que alojan un intérprete de JavaScript, tienen bucles de eventos, pero en ambos casos, JavaScript simplemente espera hasta que se invoca.

JavaScript es de un solo subproceso. Es capaz de responder rápidamente a muchas consultas mediante el monitoreo de actividades asincrónicas (como solicitudes de red y respuestas en otros subprocesos) mediante devoluciones de llamada. Debido a que JavaScript tiene un solo subproceso, las devoluciones de llamada no necesitan ningún bloqueo especial seguro para subprocesos.

Los eventos de JavaScript, como se muestran en la mayoría de los códigos de muestra, no son “eventos de JavaScript”, sino parte de la API DOM del navegador web. No hay ningún objeto de evento nativo en el lenguaje JavaScript. Un evento es solo un objeto con algunos datos, que se pasa con funciones.

Las buenas imágenes dicen más que mil palabras.

http://latentflip.com/loupe/

Es una cola de tareas, las tareas se ejecutan de quince maneras.