OK,
@Aurora Wright, I have found the real problem. And guess what? It actually has nothing to do with either corrupted or patched TWL_FIRM at all. In fact, patched TWL_FIRM actually seems to work alright, believe it or not.
For one thing, 5.4 apparently only looks at the first .tmd file it finds. In the case of one 3DS, the 00000016.app was present (most up to date version), and it was not corrupt. The problem was that 0000000F.APP was there also. So there were two .tmd files. The problem was that 00000000.TMD referenced the old app, and 00000002.tmd referenced the new one. ReiNAND was having no problems finding the right one, nor was Luma 5.2. Or at least, if they were running the old one, it worked. Luma 5.4 could not find it. So I deleted the old .app and .tmd files using Godmode9, and, problem solved. Just to prove that it wasn't even looking for the right .tmd file, I renamed the 00000002.tmd file to 00000000.tmd. DSiWare still worked just fine in Luma 5.4 after doing that, even though it shouldn't, because the firmware shouldn't be able to find the file now. It correctly broke it in ReiNAND. Which leads me to believe it was using the updated version. Both worked when I renamed it back to 00000002.tmd. So, apparently Luma 5.4 doesn't check the actual installation, it just uses the first .tmd file it finds.
Now, apparently on the other one, the online update failed to install 00000016.app at all, and it was still running 0000000f.app. That, or maybe I actually did reinstall the older version on that one (I definitely didn't on the first one I mentioned, it must have stayed from before the A9LH install, so the "keep A9LH" NAND restore option must have left it). Regardless, the only patched TWL_FIRM I have is the latest version. Surprisingly, "Four Swords" actually runs just fine with that installed. I just installed it for easy extraction via Godmode9, so I could use it in fc/b comparisons to prove my TWL_FIRM had not been patched. I wasn't really expecting it to work with you saying it wouldn't, but it does (though I switched it back to the original just in case there were long-term side effects). Anyway, the 0000000f.app file is definitely not patched. Just an older version. An older version that apparently nothing else has trouble supporting. Now, I know Cakes uses it's own external copy, but ReiNAND 4.0 and Luma 5.2 do not. Neither of them had a problem with it being an older version of TWL_NAND.
So, apparently there is still a TWL problem. It just has fewer symptoms. Well, at least now I know that it had nothing to do with patching or corruption, and that it is not going to be a recurring issue where the compatibility keeps breaking or anything.
My apologies if I sound overly critical. And I hate to be the bearer of bad news. I am merely trying to help the best CFW stay that way. I always recommend Luma3DS over all the rest.
Thanks. Was hoping I missed something in my search. Thought maybe someone came up with a direct loader.
Not yet they haven't. However, Simple CIA Converter is relatively easy. Just put the ROMs in the "roms" folder, run the app, click the button to create the ncchinfo.bin file, save it in the same folder as the app, copy it to your "Decrypt9" folder on SD. Boot Decrypt9, Xorpad Generator Options, NCCH Padgen. When it's done simply turn the 3DS off with L+Start, eject the SD card, copy the .xorpad files in the "Decrypt9" folder to Simple CIA Converter's "xorpads" folder, and click the button to generate the CIAs. Should be done in a few minutes unless you're doing 100 games at a time or something.
I'm sorry. luma boots 9.2 sysnand, with homemenu hax and than booting the gateway.3ds
If you use a "firmware.bin" file, Make sure "SysNAND is updated" is turned off. Otherwise it will boot SysNAND with 10.2 on an N3DS or 9.6 on an O3DS. It should not hang if it's booting with the 9.0 NATIVE_FIRM. If that's already unchecked, not sure what else to say. It works on my 9.2 EmuNAND in A9LH. Actually, I have BootCTR load it directly through Menuhax, or I use the Gateway CIA. I modified regular BootCTR to use boot_confg2.ini so I can have both (it's easy with a hex editor, the file name is in plain text). Haven't tried to launch it from HBL in a long time. So, maybe try one of those.