Regarding fish startup time I had a problem with fish taking forever before. Turned out my ~/.config/fish/fishd.<hostname> file had erroneously ballooned to many megabytes. This caused a very long startup time. It should typically be a few kilobytes.
I actually never looked inside! I deleted all of those files without looking in them. Only after my performance improved did I check my scrollback and notice it was huge :(