Do you store the Authorize.net value for "Response Code"? That is what the eCart would key off of for whether to send the email and update the database.
If the "Response Code" is not 1, then the eCart thinks the transaction failed. Can you see the response code in that transaction?