Thanks, @bobbybouwmann. I've made some progress, and it looks like you can change a user's role. The two above questions were playing against each other, in my case.
There is a modal for editing a user's role, but the edit button will only display if there are at least two roles. What's confusing is that there must be at least two roles defined in the Spark::useRoles array, and that does not include Owner (which exists by default) or Member (which doesn't exist by default). In the view, there are references to roles.length > 1 on whether to show or hide the table column and edit button.
This actually makes sense but it's not the functionality I was looking for.
Here's why: the Spark team designed this so that whoever signs up is the owner, and the owner can't be changed, so there's no point in displaying this functionality when there are two roles inclusive of the Owner role.
The functionality I want is the Owner role and a Viewer role, where the Owner can create additional Owners (in case the wrong user signed up for the free trial, and doesn't have access to a credit card and other owner-level things my application requires).
So, the functionality is there, I still have some work to do though! We'll see what the implications wind up being of having multiple owners...