Hi Priyanshu,
This is may not be the answer you are looking for, but this may be a bug in Apache Oozie. Looking at the source code for CallbackService.java the string that callback tries to return is
CALL_BACK_QUERY_STRING = "{0}?" + ID_PARAM + "{1}" + "&" + STATUS_PARAM + "{2}"
Note that there is an & character. If this is not properly handled, the XML/HTTP will come back with exactly the error you mention (see here). Your best bet may be to use the alternate solution you proposed.
Regards,
Alex