I've seen references to both strewn around. Specifically, is there a bitcoin client running at the DNS seeds or seed nodes?
As you correctly identified, there are two types of seed nodes, i.e. DNS seeds and seed nodes. DNS seeds are stored in chainparams.cpp. As of today (September 2021) the following nodes are listed in this file.
I performed nslookups on these DNS names and they return a list of IP addresses that all seemed to be running bitcoin nodes.
There is also the concept of seed nodes which are hardcoded IP addresses in the event that someone is experiencing a DNS failure or other issue. These nodes are only contacted if no other discovery mechanism works.
You can also use
-seednode option to connect to a node (IP address) to retrieve peer addresses, then disconnect.
No, the DNS seeds are not running a Bitcoin client. The DNS seed nodes only give you a list of IP addresses that are running (or were recently running) a Bitcoin client. In the source code you can see that the DNS seed nodes are contacted only to get a list of addresses.
Yes, all "seed nodes" refer to bitcoin clients known (or suspected) to be more or less permanently available. The DNS seed nodes are those reached via DNS lookup; the others via their IP address. A more thorough answer (including other initial "bootstrapping" connection methods than these hardcoded seeds) has been given to another question.