The problem with the second routine is this:
for (var t = 0f; t < 1; t += Time.deltaTime / inTime)
That continues the loop while t < 1. The loop will stop when t >= 1, which means the Lerp will never execute while t = 1.
You could change it to t <= 1, but it's extremely unlikely that t will ever exactly equal 1, so that may not help anyway.