If you use actual coordinates manually, the driving time seems to be identical given rounding of seconds, see test link. I get 35 minutes and your floored result is 34 minutes.
Now, about the distance. In the test link you can see it's 26.7 miles, whereas your code gives a result of 42.898 (you added the 'miles' unit there yourself!). Now, if you convert your 26.7 miles to kilometers, you get 42.9695. I would thus claim the result of .getDistance() is actually kilometers, not miles.
By looking at Route api seems to confirm it:
distanceUnit
du
Optional. The units to use for distance in the response.
One of the following values:
- Mile or mi
- Kilometer or km [default]
So the numbers you get are pretty much accurate IMO.