You’re right, this code does work. I’ll continue investigating and try to make this kind of small test case to reproduce the same configuration as the one in-game.
Turned out to simply be the TangentBinormalGenerator not being called at all… Sorry about that.
And it was my fault, sorry!