I would totally simplify this rather than doing this as you say.
Define your list of users in something like a "users.yml" file
In the play:
vars_files:
- vars/users.yml
That defines a variable users, which is a list of strings. Later this might be a hash of attributes about the user.
In the task:
with_items: ${users}
Or in 1.2 syntax, simpler!
with_items: users
The idea of loading them from a text file is fine, but loading them from a YAML file so they are data is better.
You may also move on to wanting to keep those definitions in a group_vars/<groupname> file, so different hosts can get different lists of users, or even source that users list from external software later.