Core: Change HW update to happen on thread switch, fixes GSP synchronization.

How we synchronize hardware is very much guess-and-check, and certainly inaccurate. This PR changes synchronization to happen on a kernel thread reschedule instead of just "periodically". This seems to work quite a bit better (not entirely sure why, however).