Unfortunately, I haven't used FastCGI myself, so I can't produce code, but my understanding of the process is this: A FastCGI program runs persistently, handling its own forking, and communicates with the Web server over a socket. A regular CGI app is run from scratch every time it is invoked, but a FastCGI is already running (and can have its own objects in memory) when the Web server hands of a request to it. See FastCGI for more info, and check FastCGI for modules.
I'm not sure this will solve the OP's problem. If the FastCGI program saves its state to some global variables between requests, the next request might be from a different user. I think you'll still need to maintain session state that will be tied to a specific user