I've found out the problem. The two trees I have (one for the OS image, one for the UEFI bootloader) were slightly different. The arch_kernel_args struct changed size!
And it seems that cross-building Haiku on Haiku works very well afterall :D
I'm currently using NetSurf, and I can't close the ticket (forms are all broken), so please close if I don't get to it first.