Packages that need to be loaded on emacs startup, should just be loaded
through use-package in a non-deferred manner.
It makes no real difference to startup, loading the packages either
slows down emacs before "startup" is complete, or right after it
completes. End result is that Emacs is unresponsive for basically the
same amount of time regardless.
The undo history feature of undo-tree has been very unreliable lately,
to the point it fails to load undo history for nearly every file.
It seems the undohist package is a lot more reliable.