I think we need to track depth so that we can properly handle this case where we handle the error in an anonymous function, say if we wanted to handle it asynchronously in an example such as this:

```
function userHandler(err) {
    process.nextTick(function() {
        if (err) {}
    });
}
```

Definitely getting into edge-case land, but I'll take another look at this on Monday and see if we can simplify it a bit!

Thank you _so much_ for your careful reviews @nzakas !