DNS lookups processed in another thread, with a parallelism of 5 using SemaphoreSlim