Then why decide now that SpaceX won't get the money? Does another company get the contract? Otherwise would have assumed to simply check at/after the delivery date...
They decided a while ago (2022) that Starlink wouldn't get the RDOF grant. This was essentially an appeal to see if the decision would be reversed, and they upheld the original decision not to fund Starlink. It's not a check after deployment thing, it's a "check if they actually can deploy in the first place" situation.
There are two rounds of funding so it's possible unspent funds from the first round may roll over to fund the second round.
They didn't decide now. The program was created as a two step process initially. Starlink succeeded in the first round, but was denied in the second, more in depth, review that lead to the rejection. This was basically an appeal of that rejection.
The second round was designed to eliminate providers who didn't seem able to deliver on their promises even with the subsidies. It was made to prevent a situation where either party (but mostly the US Gov and tax payers by extension) was on the hook for unsuccessful delivery.
I'm not sure what happens with the funds that would have gone to Starlink.
There are two rounds of funding so it's possible unspent funds from the first round may roll over to fund the second round.