hmm what about something like this:
add a new field to choice_responses something like "newenrol".
When choice_role_assign runs, it finds all responses from that user and sets the newenrol flag to "1"
as the user has enrolled, until the cron runs, the user will show up in the choice as selecting the option, and it will exceed the limit..
in choice_cron, we check all responses with the newenrol flag set to 1 and make sure the limit isn't exceeded.
If the limit is exceeded, we send an e-mail to all teachers notifying them that a user has re-enrolled, but their choice response has been removed as it exceeds the limit currently set.
....we could even make this a setting in the choice config.....
admins could set "what to do with responses that tip the limit over the edge." - email admin, email teacher, email student,
and also whether or not to "remove" the existing response....
I'm liking that solution better myself - what do you think Howard?