Issue with the time vector returned by $\tt signal.spectrogram$ function
The default parameters of signal.spectrogram are:

nperseg = 256
noverlap = nperseg/8 = 32


This means that:


The length of analysis window is $256$ samples ($256/250 = 1.024$ second)
The overlap between consecutive windows is $32$ samples ($32/250 = 0.128$ second)


The timestamps returned by signal.spectrogram correspond to the centres of a window. So in your case, the first timestamp should be at $256/2 = 128$ samples, which is equal to $0.512$ seconds given a sampling frequency of $250 \mathrm{Hz}$.

The beginning of the next window will be shifted by $256-32 = 224$ samples ($32$ is an overlap), so its centre will be at $224 + 128 = 352$ samples (which corresponds to $1.408$ second). The end of the second window is at $480$ samples, so there is not enough data to process more frames.

This explains why your time vector is [0.512, 1.408].

Here is a graphical explanation:



So if you want to achieve a specific frequency spacing, you must modify the nperseg and noverlap parameters.