play_idle_loop now signals instead of throws
fixup playsingle controller: play_human_turn throws