Because you can counteract the death event, I'd consider the LivingEntity alive until all the event listeners have been called
Events are almost always triggered before performing the action to allow you to change/cancel something first.
This is nonsense. You cannot cancel EntityDeathEvent (not PlayerDeathEvent for that matter). The entity has already been marked as dead, the event only allows you to change what should happen after the entity died. If you want to 'cancel' death, you should instead listen to EntityDamageEvent. So it indeed makes very little sense that this method returns a LivingEntity, as there is no way to revive the entity from this event. I think it would be much more sensical for it to return an Entity instead. You can try to report it as a bug maybe?
That might be possible indeed (never tested it). If it is a player, you can of course use Player#spigot().respawn(). But it still is the case that when the event is run (and all methods related to the event) the Entity is very much dead. I therefore agree with OP that it should return the more general Entity instead of LivingEntity, as there is no guarantee that the Entity is alive when you call its methods (most likely it is not).