Как узнать сколько времени осталось до срабатывания таймера?
Можно так:var duration = 32 * 60 * 1000;
var step = 1000;
var endsAfter = duration;

var timer = setTimeout(alert, duration, 'Hello world!');

var interval = setInterval(function() {
  endsAfter -= step;
  if (endsAfter <= 0) clearInterval(interval);
  console.log('Timeout через: ', endsAfter);
}, step);Демо
По факту никак, потому что setTimeout добавляет задачу в macroTaskQueue и это не означает что она выполнится секунда в секунду. Узнать примерное время - как написали выше: при установке setTimeout запоминать (метку времени+значение таймаута) и из неё вычитать текущую метку времени из setInterval.