I'm so sorry OP, that's very distressing.
I agree that the best way is always the honest and straightforward way. I would sit him down and warn him along the lines of "I've got to tell you something very sad that's happened" and tell him straight that the cat was injured and died. I might also reassure him that it wasn't his or the cat's fault, it was an accident. And there might be some hard questions.
Personally, I think it's also OK to cry if that happens and explain that it makes you sad too. Basically just be honest and open, even about the fact that it's not fair that it happened, especially to a young cat, and it's ok to be angry about that.
Also you could tell him that your other animals will be sad and miss the cat too, and that he can help them to feel better by helping to look after them.
It sounds like you are doing all the right things in any case, but it's so, so difficult.
Your exMiL's comment wasn't helpful. Everyone reacts in different ways and however it works for them. But he doesn't really need to hear that (and I'm sure your son is smart enough to know that another cat is not a resurrection of or direct replacement of the deceased cat).
I wonder if your son might like to sow some forget-me-not seeds in the garden, to grow 'in memory' of the cat? Something tacit to remember the lost pet.
My heart goes out to you, Frugal, both on the loss of your pet and for having to break this to your son. I want to say that I hope it will be OK, but I know that doesn't help. It's never really OK. But I hope you know what I mean.
The cat was lucky to have shared the short life that he had with you and your son. Every good wish to you. x 