So after I've spent some time with the library it looks like it supports synchronous HTTP requests. While I agree that this is not a best practice for most cases, saying that it's a bad idea altogether is ignoring some conditions that might require it. In my case I'm depended on other libraries which I cannot control, and this is off the UI thread, so it's ok.
AjaxCallback<JSONObject> cb = new AjaxCallback<JSONObject>();
final AQuery aq = new AQuery(this);
cb.url(url).type(JSONObject.class);
aq.sync(cb);
JSONObject json = cb.getResult();
AjaxStatus status = cb.getStatus();
if (json != null && statusValid(status)) {
// parse json object, throw if fails, etc.
}