Won't `time.Since(start)` be evaluated here instead of when the handler func returns? Same for a couple other places where the context is modified by a `defer` without a wrapping func.