What is the best way to implement a microseconds precise delay/measurement
You can't really combine delays and measurements into one case. There is no common logic or one proper method. It depends on what you are doing and what timers and features the microcontroller has. A more specific answer would require a more specific question.

If you implement measuring how long a piece of code executes like in your code, as long as the execution time is less than timer overflow period, there really is no problem if timer wraps around during the timing. If end time is 0x0000 and start time is 0xFFFF, 16-bit math still says it's 1 tick. 

If you just want a blocking delay, start a timer and wait until count has reached end by looking at overflow/underflow flags depending on which way the timer counts. 

If you have a timer and must measure timing of external signals, you can use the timer capture mode to get timestamps of signal transitions.