It seems that the wp_redirect() and exit function prevents the term saving. If you remove that code, you’ll see that the term is saved correctly. If you need to use the redirect code, I’m afraid you need to use the wp_set_object_terms() function in that hook. I’m sorry for the inconvenience.
I hope this helps.