I don't think one can modify existing signals, so the solution could be making your own signal. Make a method on the signal emitter and hook it to body_entered signal. In that function emit custom signal which contains all the information you need to pass.
Sorry I can't provide you with C# example, I have yet to try C# with Godot (I know C# but quickly learned gdscript and I was quite pleased with it :) ).
Now that you mentioned it, it's quite strange that signals don't tell who emitted 'em. I mean, C# events usually have the sender object...
Edit: I forgot that you can define extra arguments to be passed when connecting the signal.
You can add the emitter there. Something along these lines:
area.Connect("body_entered", this, nameof(HandleBodyEntered), new Godot.Collections.Array(area));