after adding debug logging to Ansible to make obvious what it chooses for "delegated_host_name" (in both cases: when storing host vars in ansible_delegated_vars and when connecting to the delegated host) moving random_conductor from a task var to a fact evaluates it once when storing it as a fact and then uses the evaluated value in the fact from then on, so it never changes when referenced.
after adding debug logging to Ansible to make obvious what it chooses for "delegated_ host_name" (in both cases: when storing host vars in ansible_ delegated_ vars and when connecting to the delegated host) moving random_conductor from a task var to a fact evaluates it once when storing it as a fact and then uses the evaluated value in the fact from then on, so it never changes when referenced.