So this is something we run into with the radar community on a pretty regular basis. For LFMs, the solution is a bit trivial, but for coded waveforms it becomes a real issue. For us radar folk, we're dealing with targets that are at escape velocity (right around 11 km/s typically). I actually have some pending intellectual property being released via my company on this subject, so I'll try to discuss the solution without going too far into it.
Depending on the direction of the velocity vector, the Doppler distortion on an LFM will result in either an elongation of the waveform, or a "squishing" of the signal. It's important to note here that for the LFM case, this pretty much just results in an effective chirp slope change, so I like to think of it as the start/stop frequencies have remained the same, but the effective pulse duration it took to get there has been distorted.
The solution for an LFM is simply just to account for the effective slope change that you expect. For example, if you're expecting an elongation by a factor of 2, "squish" your waveform by a factor of 2 when you transmit the waveform; we call this process pre-distortion, and the goal is to equalize the distortion effect from the target such that at your pulse compression filter, you get maximum pulse compression gain. This of course relies on some a priori knowledge of the target velocity, which isn't totally unreasonable given how most of these systems perform tracking operations.
Coded waveforms present an issue though, we're now non-linear, so the solution isn't as easy on the surface. If you chunk through the algebra a bit using generic phasor notation, you'll start to see some terms pop out. It turns out the result is fairly similar: the chip widths change. How the chip widths change, I'll leave that for you to figure out with your algebra.
The important thing to note here though is that, at least in my experience, you do not punch holes/zeros in your signal like you've asked. The coded waveform chips will now either be shorter or longer, so you may have added or lost some phase information, but if you can account for that on transmit just like we did with the LFM, you can negate the distortion via pre-distortion of the waveform. In short: the chips will change their duration, but there will not be gaps since all of the chips change.
Now as for any Doppler shift that's on the phase coded waveform, that can easily be taken care of if you have some expectation of target velocity: you simply just shift the pulse compression filter in frequency (or the received waveform itself, whichever is easiest for you to implement in your system) so that the Doppler shift is "matched" to your pulse compression filter. Again, this requires some knowledge of target velocity. If you didn't have knowledge of target velocity, you could do a multi-hypothesis approach.
The reason we typically don't have to worry about this for LFMs is evident in their ambiguity function: they are incredibly Doppler tolerant, i.e. Doppler shifts just cause slight range migration and decrease in pulse compression gain, but not signal loss. With coded waveforms, their ambiguity function typically looks like a spike (often called "thumb tack ambiguity"), which results in complete signal loss with even the slightest Doppler shift. Therefore, it's pretty important that we get that Doppler hypothesis correct!
This method is in open literature, and I'm pretty sure some of the Mark Richards signal processing books touch on it. This paper from MITRE touches upon a multi-hypothesis technique. A lot of that paper is poorly written and sometimes incorrect in my opinion, but they have a good explanation of the multi-hypothesis approach, and a nice block diagram for it towards the end.