You cannot do that in JSF, general J2EE, or, for that matter, in any web platform in any programming language.
HTTP is a strict request/response protocol. One request gets one response. Therefore you cannot make a request, get a "busy" response back, followed by a "done" response. You get only one response and that response isn't posted out until request processing is complete.
For a long-running process, you will need to offload the long-running part to a separate thread. Note that you cannot spawn this thread from within JSF or servlet/JSP code - that is explicitly forbidden by the J2EE standards (and will possibly crash your appserver). You can, however, construct an out-of-band "engine" process in a webapp servletcontextlistener and post your long-running requests to it. The JSF code would then be in charge of sending the request to the engine, polling the engine status (you can use AJAX for this), and returning the completed results once the engine has finished the request.
Customer surveys are for companies who didn't pay proper attention to begin with.