Si así has solucionado el problema, es que el BI no está bien afinado. Estás actualizando POSICIÓN POR POSICIÓN, y no todas las posiciones en una sola tacada. Si así te funciona, y no encuentras una alternativa al batch-input, déjala así, y te ahorras problemas personalizando la tabla bdc.
PERO esa solución no es definitiva. Si el sistema está sobrecargado, o tiene un mal día, quizá ese segundo no será suficiente, y tendrás el mismo problema.
Hay funciones SAP que comprueban los bloqueos de los objetos. Intenta localizar alguna que te diga si el pedido tratado sigue bloqueado, y haz un bucle (con un límite de tiempo, of course) comprobando el bloqueo.
Suerte, y felicidades por encontrar la solución