a) I presume you mean that it must be *completed* before data?  It's currently being called during rcpt_to. So how do I assure that it has completed before data? 
b) it is currently working. The first way I wrote it (calling check_qmd_reponse outside the callback) obviously didn't work, as the results were consistently showing up in the logs after data (way too late). But now it is working, so I'm not sure what I'm supposed to do there.