Description
When starting a new transaction, we currently assign the last incremented transaction ID, then increment the next ID before returning. This means that the transaction ID returned may reflect a prior timestamp (if > 1 msec has elapsed since the last transaction started).
We should instead generate the transaction ID to return for a request by incrementing based on the current timestamp, prior to assigning the value to return.