As a big [name_m]Jack[/name_m] lover, of course, I say they should stick with [name_m]John[/name_m] nn [name_m]Jack[/name_m]!
It probably will be awkward just the few first days but there’s absolutely nothing wrong with sharing a name with an animal, I’m sure they’ll have plenty of anecdotes because of that. Furthermore, if it’s a senior cat, its life expectancy will be eight? nine more years? The cat won’t be there forever, and if the name is so important for them, they’ll probably regret not using it because of the pet.
And probably future toddler [name_m]Jack[/name_m] will find really funny to share his name with his grandparents’ cat. Kids like this kind of thing.
Depending on how the cat was rescued, it’s quite possible he has not lived his entire life as [name_m]Jack[/name_m] anyway. The shelter probably just picked a name. The easy thing would be to change the cat’s name, but if that’s not an option, you could call your son by his middle name or just go with [name_m]Jack[/name_m] anyway. If your father-in-law doesn’t mind sharing his name with his cat, probably your son won’t mind either.
I do like JJ or just [name_u]Jay[/name_u] as an alternate nickname.
I would stick with [name_m]Jack[/name_m]. But if not? [name_m]John[/name_m] nn [name_m]Johnny[/name_m] actually feels quite fresh and unexpected on a baby.