Correct. I tested this with a very simply case and it will actually fail if you do it my way:

```python
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.resource import Resource
import time

class ClockPage(Resource):
    isLeaf = True

    def render_GET(self, request):
        request.write("<html><body>%s</body></html>" % time.ctime())
        request.finish()

resource = ClockPage()
factory = Site(resource)
reactor.listenTCP(8880, factory)
reactor.run()
```

With:
```
exceptions.RuntimeError: Request.write called on a request after Request.finish was called.
```

The reason why this probably worked in my experience was `write()` was getting called before `finish()` due to what was going on in the reactor at the time. So in this case you should ignore my comment here....but if you wanted to simplify it you could just jsonify the tasks list and return them instead of having to return `NOT_DONE_YET` (since you're not doing anything async here)