Hi Manoj,
That is what i was suggesting to make that method fore ground and pass the workflow agent as the approver id who is actually approving the decision task . This method should be called immediately in user decision branch of approve and with the person who is actioning on the user decision as the agent for that task. It would be creating an additional workitem for sure, but it wont be visible to the user unless there is any error while approving.
However, incase the user does not agree with this, only other solution is to make a program which will be submitted in workflow with the approver user id. The functionality will be like, the Workflow will be executing the new method with the user id wf-batch and that user id will be submitting a Batch job with the approver user id.
Thanks
Tirthankar