Bitcoin-Qt is now running nicely using around 0.9% CPU. So it seems like the culprit was indeed line 31:
if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d))
Others, who have seen similar issues ?
I can definitely reproduce the issue on my mac.
If I recall correctly, the Mac Bitcoin-Qt does not register itself as a bitcoin: URL handler, so the easiest fix for the 0.6 release would be to just never launch the ipcThread #ifdef Q_WS_MAC