run_once tasks are skipped without checking the delegate_to host #9784

The fix is to choose the `delegate_to` host (when defined and included in the target host list) instead of the first one in the list for running the tasks marked with `run_once`.
In general, unless the condition and the values are very simple, don't use a ternary.  it's easier to read if it's in long form.