I think the best thing for now is to set the real HTTP status code in StatusCode, just to avoid any confusion down the road.

but... I really like your idea about custom retry logic.  We've talked about supporting that several times over the past year or so, and I think it'd come in handy for a couple of good use cases.  We've had a few design brainstorming sessions around it, and it's great to hear that there's more interest in it from other developers.