Estimate "speed" of repeating signal pattern
You may be able to use a modified transform to compute change in a time stretch parameter (I will use $\zeta$) versus time (t). Your success in being able to do this depends on the cross correlation properties of your pattern with time stretched versions of itself. Let me explain: 

First notice that the Fourier Transform is a correlation over all possible frequencies (here using the simpler form with complex tones $e^{j\omega t}$, once you know that $e^{j\omega t}$ represents a single tone in frequency this form is so much cleaner than expressing it with sines and cosines; since a cosine is two complex tones: $2cos(\omega t) = e^{j\omega t} + e^{-j\omega t}$). 

$$F(j\omega) = \int_{t=-\infty}^\infty x(t) e^{-j\omega t}dt$$

Observe that in this process, you set $\omega$ to every possible value, and for each $\omega$ you compute the correlation of your waveform with that frequency, where what I refer to as "correlation" generally is a complex conjugate multiplication and integration process (and digitally with the DFT we do a multiply and accumulate over a finite length):

$$Corr = \int x(t) y^*(t) $$  

Similarly, the short term FT (STFT) we introduce a time variable $\tau$ where we sweep a window function (which selects a portion of our waveform) to access the change in frequency versus $\tau$:

$$F(\tau, j\omega) = \int_{t=-\infty}^\infty x(t)w(t-\tau) e^{-j\omega t}dt$$

Where $w(t)$ is a window function, and we have the trade space of time resolution and frequency resolution to contend with. (The simplest window is a "rectangular window" which is all one over a specified duration of time).  If our signal is changing very slowly with time, we can use longer windows in the STFT to achieve fine frequency resolution. but if it is changing quickly, and we want to observe that then we must use shorter windows resulting in courser frequency resolution. Within the choice of window itself we have the trade space of resolution versus sensitivity (dynamic range): a rectangular window has the finest frequency resolution but very poor sensitivity: the sidebands roll-off at 1/f. Higher performance windows (Kaiser, Hamming, Blackman etc) can have much better sideband rejection (better sensitivity) but always at the expense of the main lobe width (resolution).   

To the degree that your base pattern, what I will call m(t), is sufficiently uncorrelated to time stretched versions of itself ($m(t/\zeta)$), you can modify this transform to be what you are looking for. "Sufficiently" here defines the sensitivity range of your approach. Assuming it is sensitive enough for the actual time stretching you are experiencing, you can then use this appraoch to determine how your actual signal $x(t)$ correlates to to different time stretching of your base pattern. You will have the same trade space as in the STFT: in this case $\zeta$ resolution versus time resolution. If the $\zeta$ is changing very slowing then you can integrate over a long duration and get a fine resolution for $\zeta$ up to the maximum cross correlation properties your base function allows, but if changing quickly and you want to measure that fast change then you will need to use shorter integration lengths.

That said if you want to go down this path I suggest:

Step 1) Analyze the cross correlation property of your signal $m(t)$ with time stretched versions of itself using:

$$rr_{t \zeta} = \int_0^T m^*(t)m(t/\zeta)d(t)$$

Where $\zeta$ is the parameter stretching your time, when $\zeta=1$ you get the autocorrelation at time=0, for values of $\zeta$ less than 1, your waveform $m(t/\zeta)$ will be stretched in time relative to $m(t)$, and for values of $\zeta$ greater than 1, the waveform will be compressed in time. If your waveform is real then you can ignore the complex conjugate, however this is critical to include for complex waveforms, so I included it in the formula.

The amount of cross correlation will indicate the usability of this approach and your measurement sensitivity and precision. Check this with increasing values for T (integration time) to access usability range for T (which would then provide guidance on window lengths). Assuming the cross-correlation is low enough for your use, proceed to step 2.

Step 2) Use the modified transform to determine $\zeta$ versus time for your actual capture waveform:

$$F(\tau, \zeta) = \int_{t=-\infty}^{\infty} x(t)w(t-\tau)m^*(t/\zeta)dt$$  

Where: 
$x(t)$ is your received signal

$w(t)$ is a window function (rectangular, Kaiser, Hamming etc)

$\tau$ is your time parameter for the rate of change in the stretching of your base pattern

$\zeta$ is the time stretch parameter for your base pattern.

The result is a 3 dimensional plot with $\zeta$ on the horizontal axis, $\tau$ on the vertical axis, and the magnitude result for your correlation along the z axis. Where the magnitude is maximum indicates the best estimate for $\zeta$ at that time $\tau$.