Why Does This Fail

Top-level nodes.yml:

*Top-level nodes.yml:*

---
- hosts: "{{ hosts }}"
  roles:
    - { role: lsssd, when: inventory_hostname not in (groups['edisonnodes']|union(groups['pugnodes_old'])) }
    - nodes
   user: root
   gather_facts: True

<snip />

I have tried various changes but nothing seems to work.

Have you tried

roles:
   - role: lsssd
     when: inventory_hostname not in (groups['edisonnodes']|union(groups['pugnodes_old']))