Restore the fetch context expiry timer

Merged Michał Kępień requested to merge 3040-restore-the-fetch-context-expiry-timer into main

the lifetime expiry timer for the fetch context was removed when we switched to using in-band netmgr timeouts. however, it turns out some dependency loops can occur between a fetch and the ADB the validator; these deadlocks were formerly broken when the timer fired, and now there's no timer. we can fix these errors individually, but in the meantime we don't want the server to get hung at shutdown because of dangling fetches.

this commit puts back a single timer, which fires two seconds after the fetch should have completed, and shuts it down. it also logs a message at level ERROR so we know about the problems when they occur.

Closes #3040 (closed)

Edited by Michał Kępień

Merge request reports