EDIT: I am looking through the trace logs to see if there is any other event that triggers during the process, and the only other method that triggers is Erp.Proxy.BO.LotSelectUpdate.GetList, which only fires when the search box is initially displayed. As the lot number will rarely be searched for, it would not work in this instance.
Is there any other method of halting/stopping a Pre-Processing BPM other than with an Exception?