text: Title: Nicer error handling with mishandled responses
  Body: ```python
  @app.get("/")
  async def handler(request):
      response1 = await request.respond(headers={"one": "one"})
      response2 = await request.respond(headers={"two": "two"})
  
      await response1.send("One")
      await response2.send("Two")
  
      await response1.eof()
      await response2.send("???")
      await response2.eof()
  ```
  
  ```
  $ curl localhost:9999 -i
  HTTP/1.1 200 OK
  one: one
  transfer-encoding: chunked
  connection: keep-alive
  content-type: None
  
  OneTwo
  ```
  
  ```
  [2021-08-17 15:14:06 +0300] [368537] [ERROR] Exception occurred while handling uri: 'http://localhost:9999/'
  Traceback (most recent call last):
    File "handle_request", line 83, in handle_request
      """
    File "/tmp/p.py", line 21, in handler
      await response2.send("???")
    File "/home/adam/Projects/Sanic/sanic/sanic/response.py", line 122, in send
      await self.stream.send(data, end_stream=end_stream)
  TypeError: 'NoneType' object is not callable
  ```
  
  Two things here:
  1. When we create the second response, there is no indication to the user that this is somewhat useless. The headers here are ignored, although you can continue sending from it. As seen in example.
  2. When `send` is called after the `eof`, there should be a nicer error than `NoneType` that does not explain what happened to the stream.