auto future = std::async(std::launch::async, sendRequest);
или
auto future = std::async(std::launch::async, []{ ... });
Будет то, что вы ищете.
Но лучше переключиться на асинхронные сокеты (с asio или любым другим). В библиотеках асинхронных сокетов, таких как asio, могут использоваться параметры c, определяемые платформой, чтобы избежать блокировки вызовов, поэтому вам не нужно выполнять операции в пуле потоков.
Если вы используете winsock и Нет планов перехода на другие платформы, вы также можете напрямую использовать windows асинхронные сокеты.