тут треды не помогут, если только то чем ты вычисляешь не делает release gil, нужен отдельный процесс, и в async тоже для этого нужен отдельный процесс (именно процесс, а не тред) запущенный через run_in_executor. Но это же основы, которые можно легко найти в доках или загуглить, даже на этом сайте про это кучу раз рассказывали
Надо под каждый порт создать свой сокет, только вот не понятно зачем для "выполнения разных команд в условии" нужно их несколько, чем один не устраивает?