parser: Don't toggle idle state outside of the worker
Changing the idle state is likely to cause a deadlock on startup when tasks are restored. parser::restore() is called from MediaLibrary::initialize() with the medialib lock held, and changing the idle state synchronously from that thread would cause onIdleChange to be invoked, which will try to lock the mutex recursively, leading to a deadlock.