worker: refactor code around qr_task_step
The function is really complex, with (indirect) recursion on multiple places, and not well understandable/described.
There are some bugs in there, e.g. ioreq_spawn
is (seldom) called with AF_UNSPEC
family, breaking the pre-condition, but it seems kresd recovers well from those cases. (This bug seems very hard to track/explain.)