Yes, the pitch (and duration) has to change following the varying pilot tone.
The project you did, Dan, seems more difficult to solve than mine, since I have the pilot tone that simplify everything.
I think the steps may be the following:
1) clean the pilot tone in order to have a nice sequence of pulses. (I'll loose the phase shift but 800 Hz is high enough)
2) The variations will be very slow, so it should be enough to count how many pulses there are in consecutive blocks of one second each. (I'm sure that if the variation is around 0.1% for adjacent blocks the final result will be ok.)
3) Use the ratio between the reference (800 Hz) and the actual number of pulses (for example 880)
to resample one second of audio. That means, if I sample at 48KHz then the original 48000 samples should become 48000 * (880/800) = 52800.
4) append all the blocks of interpolated samples. Listen to the result at 48Khz. Enjoy it.
Step 1 can be easily done using some threshold and gain.
Step 2 can be done just counting. With 800 pulses/sec there will be an uncertainty of a little bit more that 0.1% but it should be ok. Here I don't know if there is some ready-made function, but just counting will be easy and safe (no fft for frequency analisis or similar)
Step 3 can be done with some resampling/interpolation function (not time warping). Here I need you advice.
Step 4 is straightforward.
What do you think?