Like most things related to WordPress development, there are more than one way to do this successfully. Are you currently using something to manage/create events on your WordPress site? If so, this may influence the form solution (the events solution you’re using may already have a form integration available that would work better than something else).
I have done this before, for a Technology events startup, who needed to limit entries to specific events, and after a certain number of sign ups, inform users that they were being added to a waiting list (or with some events, simply disable further registration).
The solution I chose leveraged gravity forms (a paid plugin) and gravity perks extension that limits entries (a paid extension).
Some more information about this set up is here:
https://gravitywiz.com/documentation/gravity-forms-limit-submissions/
GF does have built-in form submission limiting, and this plugin could be extended exactly how you are looking for (with custom messaging after limits are reached, as well as routing emails to a different list or recipient based on limitation status, or even conditional business rules for submissions based on the limitation status) with some custom PHP and development effort, but I chose the paid plugin because the client was happy to have the issue resolved quickly.
Along these lines, I think just about any form solution could be extended or customized to provide the functionality you’re looking for, and each approach would have advantages/disadvantages relative to your site and business needs, as well as varying levels of time and effort needed.