Hi Drashti,
1: Unfortunately VL09 is standard transaction and there is nothing much we can do. I would suggest to analyze program RVV50L09 (transaction VL09) to find any specific function module it is using to reverse order/deliver (whatever your input is). if you can find such function, you can directly call it in your RFC to speed things up.
2: For timeout issue please check with your basis administrator, I think there is some system settings for web service timeout. We were having similar problem in a web service call. An RFC based web service was taking too much time and client was having time out error. To resolve it our basis team has changed the setting of timeout parameter to wait more (like it was 60 sec before and later they make it 80 sec) and this solved the problem.