Looking for best way to approach user profiles
Yes, Profile2 is probably the best approach there.

However, I don't think you'll be able to switch within a single registration form without custom coding.

To present alternative registration form pages for profile type, you can use the module:

profile2_regpath