Python 3.8 (pre-release), 168 164 163 126 119125 bytes
l=[p:=0]
n=""
for s in Sinput():
if(p:=p+1j**(ord(s)%15))in l:x=l.index(p);l=l[:x+1];n=n[:x];p=l[x]
else:l+=[p];n+=s
exit(n)
Assigns a complex number to go up, down, left right on the complex plane. Then iterates over the given path S and either adds the new point to the path in the list of points l and the result string n or if it detected a loop from a previous index up until the current character, it slices the characters and points that created the loops out of the lists.
-4135 thanks to @JonathanAllan!