You can do some of this but not all, let me explain.
User can register, but admin must approve
You can use the “manual approval” feature, this requires admins to manually approve registered users prior to having them gain access to the site. However, you cannot set a user to “no role”, they would have to be one of the default roles.
Extra Fields
There’s two hooks you can use to achieve this; one allows you to add additional fields on the form, while the other allows you to filter those fields once the form is submitted. However you would still need to manually code where the additional fields are displayed in the WordPress admin.
Let me know if you have any additional questions.