time: current simulation/interpolated time of the server. drifts with lag changes, stops when paused, etc. may snap back and forth for parsing network messages, which is fun. may be backdated for more precise nextthink timing. just generally unreliable even in vanilla ssqc, and few people even realised.
cltime: clientside timestamp. doesn't drift, doesn't do weird stuff.
frametime: in physics+think functions this is keyed to changes in the time global, otherwise specifies the change in the cltime global since the previous video frame.
clframetime: always the difference of cltime since the last frame.
.nextthink: matches the time global only.
servertime: the ssqc timestamp of the 'most recent' snapshot (used for interpolation). drifting+anti-bunching+loss-smoothing logic means that this can actually be older than the most recent, or in otherwords its implementation-defined aka don't depend on any specific values too much - this is merely the timestamp used by the engine for the non-csqc ents.
serverprevtime: the ssqc timestamp of the snapshot before that, ish - it can be older if some snapshots were dropped or if they would have had the same timestamp (reducing infinities and dodgy lerps).
serverdeltatime: servertime-serverprevtime; for people to lazy to calculate themselves.
input_timelength: the number of (fractional) seconds between one input frame and its previous, valid after calls to getinputframe and during calls to CSQC_Input_Frame.
so game related things should use time+frametime, while ui stuff that should animate naturally (even when paused) should use cltime+clframetime. prediction logic should be using input_timelength(s) and doesn't need other timers, but stair stepping and any other smoothing or interpolation will (thanks to partials, interpolation is optional).
using .think to remove entities can result in crashy memory leaks if the game is paused and they're re-spawned regardless.
pure csqc doesn't actually change much, the above still applies. the only difference is that the time global is updates to rougly match cltime whenever there is no server connection (physics can still do weird things to it). unfortunately this makes properly pausing the game much harder.