I have never tried it or even considered it for rom hacking but I might later- the 08000000 to 09FFFFF range is still available/mapped for the GBA slot (will almost certainly have to write the data to the NOR of whatever device you are using though unless you really want to initialise a GBA cart as well- to help dodge any troubles with flashing software you might as well give it a gba header) in DS mode (the higher waitstate mirrors are not there but that does not matter). As you found out the filesystem is not mapped to memory and trying to get it to read "extra" files is quite tricky (one of the reasons we tend not to just add in a translation and a language switch option)- this being said I have never tried this or had much reason to. Note that the DS itself has no file system access so you can either use those afforded by the binaries themselves or go manual (in which case you could probably read outside the rom/filesystem afforded data).
http://nocash.emubase.de/gbatek.htm#dscartridgeprotocol is what you want if you want to go down that route.
Back on topic the only real trouble you might find (assuming you have not run out of memory and have redone any compression/length values in various headers) is if your expanded binary overwrites the space reserved for overlays or other data which would not be that hard to change either although there are ways around it.
My suggestion- think back to your GBA hacking days and drop/shorten all the "wifi not working" and other error messages that I usually see buried in binaries (picking a random binary from the pile here I have a commercial game built with lua here that has loads). Rather nicely they are often plain ASCII (rarely U16 unicode but you can hope) in English even on Japanese games going way into the kilobytes range. You might have to change their pointers as well but for extra space in a binary that is a small price to pay. It is not pleasant but can be automated and also can dodge some pitfalls with rom reading time (the DS does not do overly well when it comes to race conditions)
Option 2 and one more risky- not every game pushes the system to the limits so do as trainer makers do and deadbeef pad the ram (you might have to disable any initialisation wipes but that is probably basic startup hacking) and see what remains after getting into the game and playing for a while (take note of any overlays though- they should use a contiguous memory section).
Option 3 is compression possibly coupled with a pointer hack of sorts (think how cheats sometimes need pointer hacks- same idea here except you are the one implementing it).
Option 4 is a bit more tricky- hook another file not to do with text and with a few more instructions get it to grab some text data in addition to the data- if you have made it this far in DS hacking you will almost certainly have seen file systems stacked on top of file systems.
Of course you could always do my favourite thing and mix methods.