Linux locks? I have no idea and would be interested to know.
I suspect that occasionally fair locks would be ideal, but I don't know if they can be implemented efficiently.
Futexes do support priority inheritance, so you can use process priority safely. You might drop priority after releasing a lock to ensure some other thread gets a go, and as long as you control the priority of the other contenders, that can work well.
Basics of futexes are here, but nothing about PI or fairness: https://eli.thegreenplace.net/2018/basics-of-futexes/