Hi Durgesh,
As your project is not complete, I cannot run it. But I see that you are using NULL as parameter to vTaskDelete(), so this does not match what you are saying in report above?

You are creating tasks in slave.c in several places using a *local* variable names taskHandle, which is very problematic.
Can you set a breakpoint on above line of vTaskDelete() in the debugger and check if taskHandle is indeed NULL?
And I would use NULL just to make sure that you are not accidentially deleting a different task, as you are using a global task handle variable:

And actually this is your problem (I think), because on line 319 (function readInputStatusHandler()) you are setting that handle for Task3:

So in essence, in taskResponseToMaster() you are not deleting yourself, you are deleting Task3.
And no wonder that taskResponseToMaster() will crash as it has not been deleted.
I hope this helps,
Erich