Do you have any other server calls within your FormAPI? As you noted, they are asynchronous, so if you call a second one before your first has returned, it's return will not be processed. If that is indeed what you are doing, you can write a client side function to queue up the server calls and wait for the return of the current one prior to sending the next. I think I still have some example code for that situation somewhere if you need me to dig it up.