Start programs using send-keys, because I want a shell.

E.g. I might choose to exit Vim for some reason and I don't want to lose the pane when I do.
Determine terminal dimensions and give the initial window an explicit size.

This ensures splits with an explicit size go according to plan (otherwise they are initially relative to the current tmux pane size, and then get re-jigged when the client attaches and resizes the window).