Tested at the staging site and find one transaction get three records at the civicrm, need to not sending to the queue for those two steps.
The PayPal IPN listener should discard any messages from Braintree. It looks like we can distinguish these by the transaction type.