I only did some light digging, and what I found was in corpseControl.
Code:
program control_Corpse(corpse)
if ( corpse.NPCTemplate() ) // If it's an NPC, this just returns 0
return 0;
endif
var settings := CP_GetSettingsCfgElem("Corpse");
var decay_wait := CInt(settings.CorpseDecay);
if ( !decay_wait )
return 0;
endif
Sleep(decay_wait);
corpse.SetDestroyable(1);
corpse.MakeRemains();
return 1;
endprogram
Is this intentional? I'm thinking maybe Austin wanted different NPC corpses to decay at different speeds. I didn't want to spend lots of time digging into this if someone that already knows could give me an answer in a few seconds

.
[edit]Added the word "corpses" after NPC, for clarification.[/edit]