Fix race condition in non-container transactions (#3671)
Fix race condition in non-container transactions (#3671)

* Transaction logic establishes 2 separate Promise Chains...

... One chain is for INTERNAL use within the Transaction logic
itself.  This chain ignores exceptions.  It is simply used to
signal when the "Next Transaction" (sibling) is allowed to begin.

The other chain is for EXTERNAL use.  It expects the caller
to handle any exceptions that occur during the Transaction.

abegines/knex,tgriesser/knex,tgriesser/knex,abegines/knex,tgriesser/knex