If you do run into the timeout, a while ago I built a brute-force solution, but it’s not for the faint of heart. I tried to make it as simple as possible but still…
As long as each page can (at least most of the time) be rendered in 30 seconds, it will build each one and string them together, but you would have to split the forms into pages your self.
It also uses unfinished (at the time) features of the the data files service, that I had to hack together, so ymmv.