The foremost point about a transient is that it gets automatically deleted after the time you have set it to stay. So if you do not want such user data to be deleted, it makes more sense to save it in the usermeta of the said user.
As for saving the data in either transients/usermeta versus the sessions, they are two different scenarios,
If saving in the transient/usermeta, your data will be stored in the database and will start building up when the number of users increases. Also, making these calls to perform the changes to the DB so frequently will keep the database on more load than usual since there would be the PHP involved apart from the MySQL calls.
If you talk about storing in the sessions, yes this too will start to bloat once you have a lot of active users and on multiple pages, but this will put load on the server at the PHP end. And just to inform you, PHP sessions also get deleted after the user closes the site or on an interval when the GC clears the sessions.
Some reference links,
https://developer.wordpress.org/plugins/users/working-with-user-metadata/
https://codex.wordpress.org/Transients_API
https://www.tutorialspoint.com/php/php_sessions.htm