Route traffic directly between nodes in a cluster
Solution 1:
Can/Should I configure forwarding from external IP addresses to internal IP addresses in the switch?
It will not help - currently nodes don't know thing about their external addresses and will not accept traffic to external IPs. However, you can configure multiple IPs per network interface and that is what you probably should do - on each node, add it's external IP to it's network interface. Then configure the switch as you said.
With the current configuration is the traffic between nodes getting directed to the correct node at the level of the switch, the router, or going all the way out to a DNS server or something?
If it currently works,it is either directed on the router or goes to your ISP and comes back to your router etc. DNS server is irrelevant here.
Is there something completely different that I should be doing instead, or something else fundamentally wrong with this architecture?
I think this architeture is usual. I think if in your case all traffic bounces via ISP - it is badly wrong, but if it routed on the router, it's sorta ok. For what to do - see above.