1: thinks are probably not what you want in csqc. if its something that should be happening every single video frame (so its actually smooth) then you should generally use .predraw instead, or just fade the alpha as part of drawing it.
if (ent.alpha > 0)
ent.alpha -= frametime/totalduration;
2: you probably shouldn't be removing csqc copy of an ssqc ent, until the engine says to do so. Trying to do it prematurely will just result in double frees or even premature reuse, which is something you really do not want.
3: time+frametime exist in csqc.
note that 'time' approximately matches the 'time' global in ssqc, which means it stops counting when the game is paused, and may briefly change faster or slower than on the server, or even jump a lot following packetloss. This also means that thinks STOP when the game is paused.
cltime also exists. this is the client's local time, and is completely independent of the game speed.
frametime is also based on the client's local time, which makes things fun. If you want the server time since the last video frame, you'll need to manually calculate that yourself.