In reply to:
if interrupts were masked, then sound output wouldn't get serviced
Yes - I realised this as soon as I logged off yesterday

.
I guess we need to establish whether the system clock is actually stopping during the lockup (see thread in Technical that suggests using Hijack to get output when player is locked up).
Does the player application get system time regularly, or does it get it once then do its own timekeeping? I ask because if it's the latter, then it's obvious that the UI thread is blocked on something; if the former, then there's something odd going on in the kernel.