How to let users choose one role from 2 offered on their account page?
Using Rules, I would do it this way (untested):


Create a user field, select list (or radio button, whichever you prefer) - we will call this field_user_role_choice with the options (Role1Name, Role2Name)


First Rule:


Create a new Rule, React on Event: After updating an existing user account


If you don't assign a default value,


Condition: Data value is empty - selector: account:field_user_role_choice, Negate (this is to ensure it doesn't trigger on a registration or if the user doesn't select a role)
Condition: Data comparison - selector: account:field_user_role_choice, value: Role1Name key
Actions: Add User Role - whichever role is associated with Role1Name
Actions: Remove a User Role - whichever role is associated with Role2Name (this is to prevent both roles being assigned to one person)


Second Rule:


Create a new Rule, React on Event: After updating an existing user account


If you don't assign a default value,


Condition: Data value is empty - selector: account:field_user_role_choice, Negate (this is to ensure it doesn't trigger on a registration or if the user doesn't select a role)
Condition: Data comparison - selector: account:field_user_role_choice, value: Role2Name key
Actions: Add User Role - whichever role is associated with Role2Name
Actions: Remove a User Role - whichever role is associated with Role1Name (this is to prevent both roles being assigned to one person)