Red, 136 123 bytes
func[s][a: charset"<>"until[parse s[any[[change["("t: a"<"a")"](t/1)]|[change["("a">"t: a")"](t/1)]| skip]]2 > length? s]s]
More readable:
f: func[s][
a: charset "<>"
l: [change["(" t: a "<" a ")"](t/1)]
r: [change["(" a ">" t: a ")"](t/1)]
until [
parse s[any [l | r | skip]]
single? s
]
s
]