caching and recording requests.
pqueue.
rely on unbound's caching.
test 500 error.
also test TCP issues.
failing test case.
transient test case.
validate that retrying works.
background task. WIP. blocks on exit.
cleanup
fix tests.