double (or even better long double) would be a better underlying type for time_t than long long.
Programs that are using time_t properly would not notice the difference. Programs that very incorrect would get complete garbage for a result, and thus be easier to notice and correct. Using double for time_t would allow a time_t value to be used as a time stamp for events separated by milliseconds. Using long double for time_t would allow time_t to be used as time stamps to record time starts and finish crossing an atom. I am sure the CERN would like it. It time_t is a double. It also makes sense for clock_t to be a double in the same units.