Hi Agus,
did you try to keep the iv_msg_state as E (=waiting) during sending the response messages for substep 1 and substep 2 while only updating some log infomration within the ODI step?
I didn't check this on my own but I think it worth trying.
Best regards
Stefan