There's no requirement that the current executing process be the one that receives the signal.
Doing some hand-wavy magic about the scheduler running process 2 immediately when process 1
sends the signal. Process 1 would have been executing and would get interrupted so that
process 2's signal handler could process the HUP. If process 1 had changed the DF, it would
"leak" into process 2.