Pankaj,
More options ---
Can you call the BAPI in background task as separate unit? I guess by the time new function is called all locks are removed.
Also, I think BAPI internally uses FM: MB_CREATE_GOODS_MOVEMENT to post the goods movement. If you can build a custom Function Module to wrap MB_CREATE_GOODS_MOVEMENT and call the custom FM in background and as separate unit. I think this should resolve the locking and LUW issues you may have.
Please check SAP help for Call function <function_name> in background task
as separate unit.
Hope this helps,
Thanks,
VM.