The canceled order is a result of how Authorize.Net Direct Post works.
Magento has to keep track of the order data through the payment process. When the customer chooses Authorize.Net Direct Post and clicks 'continue', Magento creates the order in a 'payment pending' status. The transaction still has to go through at Authorize.Net, and it may or may not. Magento won't know until Authorize.Net sends the transaction results back, at which point the order status is updated. And for record purposes (and compliance with laws in some countries), Magento doesn't delete orders under any circumstances.
PayPal Express works the same way.
You could add a custom observer to delete the order instead of changing the status when an Authorize.Net response fails, or you could switch to a third-party Authorize.Net payment method that doesn't use Direct Post.
The response handling for Direct Post is in \Magento\Authorizenet\Model\Directpost->processOrder()
.