I did a fair amount of profiling while making these changes, and there is a performance hit. I've done various things to minimise the impact so the end result seems to be only slightly slower than the original. Avoiding the payload -> signature conversion was one of those mitigation techniques.