Pretty weird that calling sound fixes the issue. ;)
a) When you try and use rush or the iohub enable high priority, do you get any warnings in the console when the script ends indicating that the priority change failed?
b) How are you launching the python script? (Psychopy2 IDE, command prompt, some other IDE, ..?)
c) To try and see what is going on here, I would suggest running Task Manager. In Task Manager, you can use the "View -> Select Columns..." to select the process priority column. Then when you pick the Processes tab of the task manager, you should see the priority of each process. Sort the processes by name and ensure that processes starting with 'p' are visible, so that when you run your python script you will be able to see the python.exe process.
Then run a non full screen script in the different scenarios and see if any of them result in the actual python.exe process running at a priority other than 'Normal'. Report what you find.
You may also want to look at the process list, sorted by priority, and see if in situations when you run the timing script and the timing is OK, if some processes are being lowered in priority (below-normal, low, ..). If so, would be interesting to know what you find.
Thanks very much.