Be more careful about setting child states

enqueue / dequeue should set QUEUED / RUNNING states

queue_or_run should set RUNNING in non-threaded mode,
or if we're a child thread