I guess DS Mode stuff doesn't work at all because the kernel is realoaded and the nand-to-sd redirection is done patching the kernel... DS(i) mode uses TWL FIRM while 3ds mode uses NATIVE FIRM. Since after the reload the redirection is gone, it can't find the game it was asked to load in the REAL nand, and it hangs. Or in the case of a DS(i) gamecard/flashcard, it probably can't find the corresponding DS Card Whitelist (the data used to detect flashcards) or something else in the real nand, and so it hangs too. I don't think this can be fixed (at least for the DSiWare), because DSiWare games are hardcoded to look for their game data in the real nand. There's no asking any kernel where the files are located. But they could (I guess) redirect the DS Card whitelist and other stuff needed for game/flashcards to work, since the twl firm (I think) loads them directly.