Hey Alejandro, looking through your code for both frontend and backend, the first suggestion that comes to mind is to add a few more console logs towards the end of your sendEmailToContact function. I tested your contactsQuery and your BE function on a test site above, and it seems good to go.
Another thing would be to have a new site member test the functionality, and check the Settings > Site Monitoring section to see what happens when they try to validate the email. That would give you a look at the backend functions running.
3rd suggestion would be to switch out the wixCrmBackend . emailContact, with the wixUsersBackend.emailUser() API instead, since your visitors are already full site members.