It seems like whenever I restart my database server performance is quite bad until an Analyze has been performed. I expect this is due to the query planner needing new stats,
Nope, statistics are WAL logged.
but that leads me to three questions:
1. Is there a way to have Analyze stats/query planner "plans" persist through a restart?
Plans are session-scoped.
What you are observing is the shared buffers being empty. There is a contrib library, pg_prewarm, designed to help alleviate this problem.