No one should be left out because there should be no contract. Instead, NASA should be fostering a spot market for launches. They should have a separate bid for each launch: "We want X satellite in Y orbit, and insured for Z dollars." Then give the launch to the lowest bidder. That way each company can work continuously to cut costs and improve services, knowing that if they leapfrog the competition, they can win the next launch, instead of being locked out for years.
For values of 'satellite' that include human-carrying s/c, and exlcude what would colloquially be called 'satellites'. And even if the contract was for a single launch, there would still be a contract, unless you are advocating for handshake deals.