Briefly, these are your main options:
Write a custom user registration component
Write a User Plugin that will handle the usergroup of the registered users
Use 3rd party Form extensions which integrate with JUsers and create your custom form(s)
A few form extensions that work well for this use case:
RSForm pro with its JUser/Registration plugin,
In fact, Setting 2 would only make sense to me if you..
...Have no inheritance of permissions to the top
...Only one usergroup has access to a specific task
Then it makes sense, if the superuser should simply have all tasks / views / options of the custom 1/2 groups this can be solved by inheritance in a cleaner way.
Edit: indeed superuser has no inherited ...