title: Getting a meaningful error message from async_status loop when retries exceeded
body: <p>Using Ansible 1.7, I am executing multiple asynchronous tasks in a loop, and checking on their status with async_status with a 30-second timeout:</p>
  
  <pre><code>- name: Some long-running task
    shell: "./some_task {{ item }}"
    loop: "{{ list_of_params }}"
    async: 30
    poll: 0
    register: my_task
  
  - name: Check async tasks for completion
    async_status:
      jid: "{{ item.ansible_job_id }}"
    register: my_task_results
    until: my_task_results.finished
    retries: 30
    delay: 1
    loop: "{{ my_task.results }}"
  </code></pre>
  
  <p>This works well, and the async_status task fails if any of the shell commands return non-zero return-code, or if "my_task_results.finished" is not true within 30 seconds.</p>
  
  <p>Unfortunately, the error message is not helpful when the "until" condition is not met in time. The returned values include:</p>
  
  <ul>
  <li>changed: false</li>
  <li>msg: "All items completed"</li>
  <li>results: [ array of results from shell task above ]</li>
  <li>changed: false</li>
  <li>failed: true</li>
  <li>finished: 0</li>
  </ul>
  
  <p>Particularly, the "All items completed" message is misleading.</p>
  
  <p>Is there a way to produce a meaningful error message in this case? I can add a "failed_when" option, with an additional "Fail" task to check condition (finished == 0) to display a custom error message (Something to the effect of "Some long-running task did not complete in time"), but this seems inelegant.</p>