We need to only mark things as failed when they actually fail, or update them on a subsequent event received over the webhook.
What's currently happening is that the webhook endpoint receives a failed event, and sets the subscription as failed, which is fairly unhelpful, because the next webhook that comes over saying that it's chaged again doesn't rcreate a renewal, AND donors (and admins) can't cancel subscriptions without manually setting them back to "active."