An idle handler should explicitly return an integer telling the system how many seconds to wait before calling it again. Otherwise the result of the last action performed is used. If I remember rightly, the default in the event of zero, a non-number, or a non-existent result is 30 seconds.
on idle
tell application "iTunes"
if player state is paused then play
end tell
return 60 -- or however many seconds you need.
end idle