It appears Django executes signals using the same process as the caller, effectively blocking the view until the OCR process completes which could take several minutes :/