iTerm2 keeps state in this way for all my open tabs, except that it does a new login shell, so my history doesn't stay consistent: they all get the same history after a restart.
Still, not having to open all the terminals I use for different things and resize and position them is a win. It's the small things. :)
iTerm2 v3 beta doesn't keep tab state across relaunch for me. The tabs come back but on a fresh command prompt without stdout from the previous session. For me it's no better than starting fresh.
I'm using 3.0.5. There's a preference "Use System Window Restoration Setting" which may be helpful.
Which shell are you using? With fish I find that it's history is somewhat context sensitive based on the present directory. Because of this I've found myself less frustrated when working with the history across multiple tabs.