I am not sure about modifying the Cisco guest pages to do this, but you could craft your own registration web page that is used to collect whatever information you want, including the survey, use REST API calls to create the guest credential and then send them back to the guest portal to login with the credentials.
Refer to this link:
https://community.cisco.com/t5/identity-services-engine-ise/linking-one-guest-portal-to-another-guest-portal/td-p/3467537
This shows you how to call to another portal in ISE, but you could use this same logic to call to an external web page and pass all the variables required to pass the user back to the guest portal page, i.e. hostname, portal ID, and web session ID.
The guest portal in ISE would be setup as a sponsor portal with no self-registration, but on the login page you would add a link/button to call to the external portal. After the guest registers and does the survey you pass them back to the guest portal to sign in and get on the Internet.
This is all theorycrafting. I haven't done this exact setup, but I don't see any reason why it wouldn't work.