Disable Fork with Join None with nested fork join_none

Hello,
I have a nested fork join blocks such as this. As per the join_none functionality (non-blocking) I am expecting the the thread P2 to get killed, but the output of the sim gets the outputs as E, 0C and 5R, how is it that the spawned threads are not getting killed with the disable fork within the scope of the first fork join_none? I tried this example below with a labelled disable fork method, and that seemed to work.

module top;
    initial
    begin
        fork
            fork
                fork 
                $display( $time, "C" );  ///- P1 
                #5 $display( $time, "R"); ///- P2 
                join_none 
            join_none
            disable fork;
        join_any
        $display( "E" );
    end
endmodule

Each statement (or block of statements) in a fork/join* block creates a separate process. The disable fork statement is a separate process with no child processes to kill.

How does the code have to be changed to achieve the behavior the author is looking for ?

Get rid of all forks except for the innermost fork/join_none.