Store audio + sample rate in the top level sandbox:
>>> J.sandbox['audio'] = {'y': y, 'sr': sr, 'abce_history': [] }
Store deformation history in the sandbox for each part touched by the deformer. For example, a time stretcher will touch box the audio object and all annotation objects, so each of these should have their history updated accordingly with the deformation parameters.
At the end of the pipe, eject the audio buffer + sample rate, and split off the resulting annotation object for output.
Title says it all, but here's how: