I was having the same issue as you so I did some digging into how the swallow patch works and why it can't swallow tmux windows.
Basically, dwm’s swallow patch is incapable of handling applications launched from terminal emulators running tmux because the patch figures out which window should be swallowed by finding the parent process of the recently launched GUI application. This fails when running tmux because tmux forks applications from its server process which is a direct child of PID 1 (the init process). There’s no direct path up the process tree from the GUI application to the terminal emulator which means dwm can't figure out which terminal should be swallowed by the new application so it spawns the application normally.
Swallowing still works with screen because screen is a child process of the terminal emulator and so are applications launched from it. In this case, there is a direct path up the process tree from the GUI application to the terminal emulator so dwm can find out which terminal to swallow.
I have a more in depth exploration of how it works along with process tree graphs on my blog if you're interested.
There is a workaround in the form of a program called devour. It doesn't provide true window swallowing the same way the swallowing patch does, but it does work with tmux.