[fix] only allow a single once('exec') listener in callback case