A COMMIT-WORK AND WAIT will actually wait until every update task is executed and so every lock kept in those task, BUT () only if excecuted in the luw/program that called the update task, so it will be of no interest at all to execute such a commit after a CALL TRANSACTION (*), it can be used when you called a BAPI.
Try to analyze the locks with SM12 (or analyzing standard code) during the transaction execution and then identify the ENQUEUE FM as I wrote in previous answer.
Regards,
Raymond
(*) The transaction will have raised aCOMMIT without WAIT option itself before your driver program...