I added a few extra edge cases to test for and this implementation now behaves exactly like windows AFAICT, at least when ignoring thread boosting for now. Of note is that the current wine HEAD fails some of these tests in an interesting way like ``` After setting, effective NT priority (2) does not match expected priority 4. ``` or ``` After setting, effective NT priority (-2) does not match expected priority 6. ``` where the left hand side of the comparison is wrong because of the mix up between thread base priority and priority and the right hand side is also wrong because process base priority and priority are also mixed up (luckily still not equal though, so the test doesn't succeed by accident).