Hmmm, por lo que parece se debe al border, porque si lo quito no se producen los eventos dos veces seguidas. Realmente el border no creo que lo necesite en la versión final, sino que lo tengo puesto para controlar las dimensiones de los contenedores, pero sí me gustaría arreglar el asunto para futuras ocasiones.
No estoy seguro, pero creo que jQuery no tenía este problema (el otro sí que no lo tenía).
¿Se os ocurre por qué el border está interfiriendo de esta manera en los eventos?
Saludos y muchas gracias por dar con la raíz del problema, ahora sólo queda la solución