I don't think it's actually necessary for the mapper to explicitly specify "deferred".  You could simplify this logic with just:

```python
result = handler(request, **result)
if isinstance(result, Deferred):
    return NOT_DONE_YET
else:
    return result
```

...and get rid of the `deferred=True` handling