I would think about the timer vs counter differently. If the frequency is low, use timer. If the frequency is high, use counter. That gives you the best trade off between stable vs responsive data. Then use smoothing to stabilize the data further, if desired. For something like a 60hz line, I?d probably use time. For something like a 10khz pulse train, I?d definitely use counter.
As for phase, yes, measure time between edges with a dual edge timer.