don't recalc duration on duration() calls

The RestSqlActionTests where flaky because duration() was called multiple
times and changed in-between.

Would be even better to set the duration in the ctor but then we would have to
break backward compatibility because we would have to change the serialization
from writeVLong to writeLong