Fix disappearing download tasks.
When ThreadPoolExecutor is adapting it's size, it interrupts its threads from time to time. HostLimitQueue had a bug, that when interrupted when waiting to acquire lock, it didn't return the job back to the queue.
Added testcases that helped debug this and that verify, that we're actually doing host based limiting.
Sponsored by "Girl, interrupted" movie with Angelina Jolie.
See: #14166