I might have a suggestion to help. Also, thank you for the feedback on the product I am including the information from this forum posting to create a feature request to make our IVR actions stronger.
Work around suggestion:
I haven't tested this exactly, but the suggest might help. Before making the URL request create a variable called "value_is_one" and set it to the value 1. Now if variables get reset on a slow URL request (haven't looked into this), then in your conditional check if "value_is_one" is actually one. If it isn't one, the URL request failed, if your URL succeeded make sure you return one for this value.
With your temporary variables you can't swap them into the other variables, but you can have that conditional clause go down a separate IVR tree that uses those temporary variables and another IVR tree that uses the real variables.
Optimize your web requests suggestion:
If you have a web request that has some long running code that is causing the IVR URL to timeout, I suggest splitting it up and giving the user a better experience.
Example: Your new IVR:
Action 1. Make a URL request that forks off a background process that runs all your long running code, and have that request immediately return an ID that you store in a variable that you will later use to get the results.
Action 2. Play a sound "We are currently looking up your account records please be patient."
Action 3. Wait 5 seconds
Action 4. Make another URL request that has your ID from the first request and pulls the results that have already finished running.
Hope this helps.