Improved send message code to better handle errors and save off the send error status if that happens; closes hole where a message can be marked as sent but not actually successfully sent