For one to three, I would implement that through an authenticator that replaces or integrates with Mumble authentication. See mumble-scripts/Authenticators for examples.
For four, I would declare groups in Mumble ACLs and assign the appropriate groups to the users to control permissions.
For five, I would create another Ice script which handles the custom timeouts according to user group/state and time.
I'm not very familiar with the newer plugin system and whether that would allow better integrated and I don't know what you are looking for in that regard, given that you specifically asked about making API calls, presumably from inside Mumble. The classic Ice API does allow extending the user context menus with custom functionality and you could respond with information to the user.