Not everything has to be a "daemon". It's a bad trend in current programming zeitgeist to want to make everything into one. (sccache, no, you do NOT need a daemon to behave like ccache.)
For a PAM replacement, you want a separate process. It doesn't have to be a persistent separate process.