Use run-with-idle-timer, not post-command-idle-hook.