I agree. It is an ugly hack.
But to me, the reduced window for failure is important. And that way an failure will happen right away to be submitted to my operators as soon as possible.
The queue jumping logic can not use the distributed transaction id?
On my logic, if a connection requests a shared lock that is already granted to another connection in the same distributed transaction it should be granted right away... make sense?