it needs to work for in-app payments too :)

You know, I was thinking about doing asynchronous sessions in a task. We could stick some ID in the session that tells the next view "check the database to see if this deferred session value is ready yet." Might be crazy enough to work. 

Or we could rewrite everything in Tulip and we'd have async code that could do API requests like this more efficiently in parallel :)