Time between 2 impulses with lowest power (watchdog, external pin interrupts)

An interesting question.
If the processor is asleep, the timekeeping has to be maintained by some other component...
You can’t use millis() etc, as they are dependent o. the processor.
You could however use a partial power down mode to keep a timer running, or as mentioned an external clock source to keep track of the elapsed time.

A combination if the above could see the cpu running at 32Khz, and all peripherals turned off (except the timers), then click back up full speed when needed.

ADDED: You could use a WDT event to count slow ticks when the cpu is ‘off’, and then keep track of the count when your next pulse comes in.