Fix async loop bug causing all jobs to be considered partially written.

If MAX_TASKS_PER_CHILD is set to a low number, then the Billiard async loop
attempts to call on_job_process_down().  This call causes the process to be
marked dead, preventing cleanup work done by on_process_down.  Without the
cleanup, then certain file descriptors are removed when the process starts
up with the on_poll_start.

Related to issue: https://github.com/celery/celery/issues/1785