I think you are addressing the wrong issue – Scott is pointing out that general exceptions do not allow you to re-fire contexts after modifying the proxies further.
The r/o proxy instance is stuck as read only because there still exists a context-specific edited copy of it, which did not succeed and has not been cleared.The context clears itself in the case of failure or validation error, but not in the case of general failure, Scott is suggesting (and I think I agree, admittedly without having tried this use case) that this is a mistake, and that general transport failure should be treated as something that can be retried.
AutoBean<Test> autoBean = AutoBeanUtils.getAutoBean(test);
autoBean.setFrozen(false);
requestContext = requestFactory.testRequest();
autoBean.setTag("requestContext", requestContext);
driver.edit(test, requestContext);
calling autoBean.setTag("requestContext", requestContext) is needed to avoid a "Attempting to edit an EntityProxy previously edited by another RequestContext" error. I know it's a hack but it's the only thing I can get to work other than copying the proxy into a new proxy property by property.