If you execute an ls -type "dagNode" in maya it will return everything that inherits from MPxNode
That would be a bad assumption, because its factually incorrect. DAG and DG are not the same thing. MPxNode is the parent class for all DG nodes and thus all DAG nodes too but not all DG nodes are DAG nodes. The -type "dagNode" would only return dag nodes.
How would I get maya to return all nodes of type "foo" and "bar" when I do ls -type "baseNode"?
My understanding is that you don't have this option. If you make a extra dummy node than you can inherit it with MPxNode::inheritAttributesFrom("BaseNode"). But this means that the basenode must be present even if its abstract.