Refactor auditor/acker to ensure that messages can't be acked prior to completion.