Det finns inget magiskt här, du får felmeddelandet eftersom anslutningen du använder när du anger CompanyAddress inte är den du tror att den är.
Det är en ny koppling. När ComapnyPaymentInfo-inlägget körs använder du anslutningen som redan är kopplad till din transaktion. Det väntar på nya kommandon eftersom du har väntat i föregående steg.
Användningen av Task.WhenAll() å andra sidan kommer att försöka använda flera trådar. Om en anslutning är upptagen med att köra ett kommando kommer den inte att användas och en ny kommer att skapas.
Kom ihåg att när du använder Transaktioner har du bara en anslutning tillgänglig, du kan inte dra nytta av parallellitet.