Let me quote from the manual:
Track Data Changes (SQL Server)
Change tracking is based on committed transactions. The order of the changes
is based on transaction commit time. This allows for reliable results to
be obtained when there are long-running and overlapping transactions.
Custom solutions that use timestamp values must be specifically
designed to handle these scenarios.
and cdc.fn_cdc_get_all_changes_ (Transact-SQL) says:
Commit LSN associated with the change that preserves the commit order of the
change. Changes committed in the same transaction share the same commit LSN
value.
for one of the returned columns (_$start_lsn
) in get_all_changes
.