What all that means is you can access the player's current action, actioncount, named movement, and counter via the htg_t array, and use this to build a sort of timer. The only part of this that is missing is getting the animation speed of an animation, although in this case PFROZEN has no animation speed, so it's equal to the gametic counter.
So to build a frozen time remaining, you'd subtract the current .htg_t 2 from THAWTIME and that's how many gametics are remaining. The shrunk timer should be the same, except you'd use .htg_t 0 to get the current counter. Divide by 30 to get the real seconds to gametic conversion. If you want to get fancy you can mod the .htg_t 2 value by 30 to get milliseconds.
Here's an untested example based on some other code I have, no idea if this will work off the rip but should put you in the right direction.
appendevent EVENT_DISPLAYREST { ifaction PFROZEN { set UI_ZOOM 24576 set UI_ORIENTATION 2 set UI_FLAGS 10 set ACTORTEMP THAWTIME sub ACTORTEMP sprite[].htg_t 2 // The player's current actioncount set ACTORTEMP2 ACTORTEMP div ACTORTEMP 30 mod ACTORTEMP2 30 // Process milliseconds redefinequote 253 %d redefinequote 254 00 qsprintf 253 253 ACTORTEMP2 qstrlen ACTORCHECK 253 set ACTORCHECK2 2 sub ACTORCHECK2 ACTORCHECK qstrncat 253 254 ACTORCHECK2 redefinequote 254 UNTHAWING IN %d.%s qsprintf 254 254 ACTORTEMP 253 screentext BIGALPHANUM 160 20 UI_ZOOM 0 0 254 0 1 UI_ORIENTATION 0 BIGALPHA_XSPACE BIGALPHA_YLINE BIGALPHA_XBETWEEN 0 UI_FLAGS 0 0 xdim ydim } } endevent