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.

[1] https://github.com/tmuxinator/tmuxinator