If you study the design philosophy of the J-20 fins you will be a bit surprised, and the reason you give does not hold water, there are aircraft which have very weird vertical stabilizers configurations
You can set the vertical stabilizers on the wingtips like this aircraft with canards has, see the links bellow
You can set the vertical stabilizers on the horizontal stabilizers, see link
see the UAV has canted inward vertical fins
Fighter aircraft cant their vertical stabilizers mainly for stealth requirements, so is mostly not aerodynamic reasons as you claim.
You can set the vertical stabilizers on booms like the F-15, MiG-29, Su-27 so there is no need of any canting, on the broad fuselage of F-14 there is not even need of booms
So why not set them on the wings? the reason is the torsional forces, J-20 is heavy, most supersonic aircraft are very heavy, the reason is fuel, jet aircraft carry lots of fuel, so at high G, the 30000kg weight become really heavy loads just multiply 30000 kg by 9Gs, the best place to set the stabilizers are the fuselage engine nacelles, on the SR-71 these are engines pods.
J-20 went for a strange vertical stabilizer configuration, mainly because they did the opposite J-31 did, on the J-31 they set larger rudders on larger vertical tails, avoiding vertical ventral fins, Chengdu went kind of weird for a stealth fighter by fitting ventral fins, something most stealth fighters avoid, they could simply had fit large vertical fins like J-31, since is pretty obvious the dorsal vertical fins are not enough at high AoA and it is possible stealth requirements affect its effectiveness