This is completely unsafe -- other threads look inside the checkpoint session when evicting pages.

The reason I'm trying to do this is to make sure that eviction threads write the same page image that checkpoint would write (so they can set the checkpoint generation in the page and checkpoint can skip it).  The only reason that would not be the case without this is if there were uncommitted changes when the checkpoint transaction started.  Only a small set of pages are likely to be in this state, so we should be able to detect them some other way to avoid sharing the session.