How about a "logic_relay" that sets up the "player_death" event to call "DispatchSpawn()" on the dead player? An "EntFireByHandle" is necessary or it looks weird, but thanks to it you may specify a delay of your choosing.
Just place a "logic_relay" and give it an output:
OnSpawn !self RunScriptCode "ClearGameEventCallbacks(); function OnGameEvent_player_death(info) {EntFireByHandle(GetPlayerFromUserID(info.userid), `RunScriptCode`, `self.DispatchSpawn()`, 0, null, null); printl(`Player died!`)}; __CollectGameEventCallbacks(this)"
(The "0" is the delay argument)
If the map already uses VScript's GameEvents then you gotta register the function according to how the map is setup.