5.x noemail cc
Here's my change to ensure that the credit card fix I made is working on your noemail branch.
In short: we should always try to update the credit card, even with a secondary transation because we can't tell if there was an initial transaction already.
Your new code fixes the error handling, but it still will let a membership payment that is not accompanied by a contribution payment slip by without having the credit card updated.