Not quite the answer to your question:
Had the same prob under NT - pkzip created an unusable zip file (Oracle did not hang). Worked around it by moving the file to another directory before zipping. The move failed with a sharing violation if the file was still being written and the zip job found nothing new to do - so no zip file (get it in the next cycle) instead of a "corrupted" one.

I hope you can translate that to UNIX.