If you’ve got the time and inclination you can achieve all of that.
You might like to employ a Discourse expert to help you though! Try Marketplace.
Yup, this can be done a few ways. Set one category to Everyone and the others to groups as appropriate and turn off login only me.
Usually one must be logged in to post in Discourse, but you can get around that by having an email-in address for that public category and allowing anon to post (I think). The user will have a staging account created, based on their email address and this will follow them.
Yes, piece of cake.
Doable manually using the Data Explorer plugin or automatically using the Custom Wizard Plugin. Both have a significant learning curve.
Good luck!!!