The "post-processing" time will not go out of sync if the processing delay is less than the PPS cycle.
I think @ano T has made the point. just add a few more comments to clarify.
Basically, you need a microcomputer onboard the UAV. The microcomputer, on one hand, connects to the LiDAR to receives data packet (and also timestamps), and, on the other hand, connects to the GPS to receive GPS message.
There are two facts to notice, (a) each data point carries a time stamp indicating the time relative to the most recent rising edge of the GPS PPS signal received by the LiDAR. This is implemented inside the LiDAR unit. (b) In the mean time, the GPS is sending out the absolute time of exact the same rising edge (it is the GPS who generates and sends the PPS, so it knows the time for the rising edge).
So now, your program running on the onboard microcomputer knows from (b) the absolute time for the rising edge, and from (a) the time relative to that rising edge of a data packet. Then, the absolute time for the data packet is simply the addition of (a) and (b).
The only problem to solve is to find the right GPS time message (i.e. (b)) for a received data packet (i.e., (a)). To do this, every time you receive a data packet from LiDAR, check whether its timestamp is increasing from the last data packet. If no, it has to drop from a value very close to 1 sec to a value very close to 0 sec, meaning that the new data packet timestamp is referred to a new PPS rising edge (thus a new GPS time should be used to correct the data packet's time stamp). If yes, it means the new data packet is referred to the same PPS rising edge (thus the same GPS time) as that of the previous data packet. In this way, you can determine which data packets are belong to the same PPS cycle. Now, assume you receive a GPS time message, this message should correspond to a cycle which the most recently received data packet belongs to.
In this process, as long as the microcomputer delay is less than 1 sec (inverse of the PPS frequency), the synchronization will be good. It does not drift over time, does not depend on the movement of the UAV (static or moving), and does not depend on the powering order of GPS or LiDAR.
So to answer your question at the very beginning, how to determine the GPS time for the first observation (i.e. data packet). The short answer is, if the first observation has arrived after the first GPS time message, you add the time inside the first GPS time message to the time stamp of the first observation. Otherwise, you wait until the first GPS time message comes, and subtract the time inside the first GPS time message by 1 and then add it to the timestamp of the first observation.
Let me know if this is clear.