Some of the comments here seem to be over-thinking things, making things seem more complicated than they are.
Talking about midi files....
The PPQ and initial tempo settings are quite incidental, they merely set a base, and would usually be appropriate to the piece of music. The midi file contains the tick count for each event, and this is fixed, and does not change, and is not subject to 'recalculation' - it is merely the relative spacing of the events.
The playing software would always know what the next event is, and it would wait until the next event is due, and then implement it. It would to this by comparing the tick value in the midi file, with the actual real time as determined by the device clock. This comparison will require some sort of calculation, as we are comparing two quite different numbers, ticks and microsecs. Exactly how each piece of software handles this comparison will be up to that piece of software, different systems may do it differently, but the calculation will take into account the actual tempo at that point in time, PPQ, etc, and if need be change the 'value' of each tick to a quantity of microsecs. So the ticks in the midi file do not change, but what each tick is really worth does.
As has been said, there are midi files that may change the tempo any number of times during playback. The effect of this change should be immediately heard, as this change is often used for dramatic effect in the music.
The playing of a midi file never involves the sending of any timing info to external devices. Timing is the responsibility of the playing/controlling device, which sends On/Off etc data out and expects that it will be impemented immed. The sort of 'synchronisation' referred to is more likely relevant to playing various instruments in a real time (live) situation where certain devices may have a live 'player' and other devices may be semi automatic (running a program) and you need to ensure everything is on the same clock.
Geoff