I finally found the solution to this issue, so posting here in case anyone else has similar issues. We made a couple of changes to our Hubspot integration. We turned off the “contact capture from non-Hubspot” forms option, and we now make a call using the Forms API to ensure that a contact is created in Hubspot for each user.
The key change we made however related to Vue router. Previously on logout we were re-directing users to the login page via the Vue-Router “replace” command (this.$router.replace(‘/login’). Changing it to this.$router.go(‘/login’) triggered a full re-render of the page including the Hubspot scripts which is apparently what was needed to properly reset the chat widget.