One stand-out piece you're missing is tmux-ressurect. You mention that you start the day by opening terminals for each project... You'll never have to do that again.
There’s also tmuxinator[1]. I setup profiles for my different development environments (panes for db/repl/vim).
Just a command away from it setting up the Tmux panes with the right sizes and processes running.