1. Edit the events in a source view so I can write a script that outputs the necessary code
Yes, you can do this if you want. Events are stored in XML file in the Event Sheet folder of the project. You can make 250K events with a script and paste them into the XML. But I doubt loading and executing 250K events will be significantly (or at all) faster than loading the dictionary from big JSON file or local storage.
I can easily split the files, but like I said in my previous post, why do I need to read this at runtime?
If you split the database into many files, you can access them in runtime with very little lag, which you may be able to hide/mask from players with some visual effects and animations.
I don't know how long does it take to load 18Mb of data. If this was my game and I had to choose between, say ~30 seconds delay on startup and 0.1 second lag every time when I need to access a word with AJAX, I would choose the latter. Of course, it depends on the game, if you need to quickly load hundreds of random words, this will not work.