huh? movetype_none has thinks in every single quake engine.
float time; is the time since the map started. players from the previous map will join at about 0.3 secs in or something weird like that.
it isn't system time, because that would break everything. specifically, system time in a float would have too low precision. doubles do not make everything okay. just using long doubles instead is a stupid suggestion, so I'm glad noone suggested it.
.float ltime; has nothing to do with the remove() builtin, at least as origionally designed.
.ltime is only used by the engine for .movetype == MOVETYPE_PUSH, where it is used instead of time for checks against nextthink. it is also incremented ONLY when the pusher actually moves. this allows syncing thinks to specific distances traveled even if something stood in its path and stopped it from moving for 10 mins. like I say, the engine only does that with movetype_push, so with any other movetype its 'free' for reuse. Any such reuse is mod specific.
traditionally you have:
startframe()
foreachclient
{
if self.isaplayer then playerprethink()
if (self.movetype == movetype_push)
{
fractionmoved = trytomove(self.velocity * frametime);
self.ltime = fractionmoved*frametime;
if (self.nextthink && self.nextthink < self.ltime) then {self.nextthink = 0; self.think();}
}
else if (self.nextthink && self.nextthink < time) then {self.nextthink = 0; self.think();}
if self.isaplayer then playerpostthink()
}
ext_endframe();
as taniwha says, QW can think multiple times in a single frame. the time value will be set to self.nextthink before the call. this is to keep nextthinks etc ticking at 10fps if there's only network traffic driving physics at 5 fps. also player entities do not have their physics run as part of the generic physics frame, but rather only on response to network traffic.
fte (and I *think* dp too) uses the qw multiple-thinks-and-players-outside-the-frame behaviour by default, even for nq mods, just with an exit clause if the think function sets nextthink to time.

yes, this breaks certain mods (headhunters at least), but fixes physics to give prediction. in fte, you can set sv_nomsec (badly named, I know) to mimic nq physics more precisely. a value of 2 makes it an exact match (assuming there's no bugs!)
.