Luckily for me there is an answer specific to DWR. It turns out you can disable the asynchronous functionality with async:false
function isDead(personId){
DWREngine.setAsync(false);
PeopleManager.isPersonDead(personId,{
callback : function(result)
{
async:false,
if(result == 1){
//dead
return true;
}else{
//alive
return false;
}
},
errorHandler : function(e){
alert(e);
}
});
return false;
}