As a continuation of discussion we had in Google group, please find the following observations:-
The below response handling doesn't work when I use it with use(new Jackson());
response.status(Status.OK).type(MediaType.json).send("{\"status\":\"failed\", \"msg\" : \"" + msg + "\"}");
But it works if I comment use(new Jackson()); out, not sure if this is expected.
Unfortunately, setting MediaType json manually doesn't work in deferred API and hence I'd need to resort to use(new Jackson()); to send JSON response from a deferred API by returning map (Jackson would convert to JSON)