I think you handled it very well. And this is a marathon, not a sprint so you are doing well pacing yourself.
That sucks he didn't come home for the dinner, but it is great he called you to let you know.
The card was a good sign too.
The more you change, keep the changes and don't back slide, etc. the better it is, the more he sees it and realizes, you did hear him and you did work on it. Then he'll need to make some changes too. It sounds to me like a little bit of progress.