I tried starting a new task in the callback, but since the TCPConnection passed to the callback is owned by the callback task/fiber, I get the following error:

[3FF3B2D9:3FF670D9 CRITICAL] CoreTaskFiber was terminated unexpectedly: Trying to acquire a TCP connection that is currently owned.

I get that error when I do the first read on the TCPConnection in the new task/fiber.