I cannot find a mention in the documentation that ERET automatically clears exclusive monitors. If I am right, not clearing the monitor could result in the aliasing of the stxr success. Practically, this is not a likely outcome since selecting new thread includes taking at least thread locks, but I believe that doing clrex could avoid surprises.
Also, after the data abort handler call, excl monitor is in the undefined state, better clear it.