Q: If there are open sessions / users making changes, could that cause the exported database to be corrupt? Or would the export just not contain their changes?
A: Yes, there is a risk of inconsistency when someone is performing a write operation while you are exporting DB
Q: If I were to use the MGMT API to do this query, I'm guessing I'd have to call 'show-sessions' to get all object UIDs for existing sessions. Then I'd have to loop through each of those UIDs using show-session. What parameter(s) in the response of show-session should I check specifically to see if the session is open?
A: You only need to see if there are no session in any of the write and/or locking mode
Q: If I detect one of these open sessions, is it better for me to abort the migrate export? Or to do cpstop and kick them out of their sessions?
A: You can abort, of course. Alternatively, you could pause migrate operation, query users by name and aske them to disengage. Kicking out is also an option, less graceful and a bit more risky, especially for sessions in write mode.