I can confirm the performance improvements. Well done!
However, I also found 2 ways to reliably crash jDosBox using dynamic core:
1. Starting FreeCell in Windows 3.11 (not sure if win32s is supported, it worked with the non-dynamic core) [log/stack trace always the same]
2. In Civilization 2 get to the first "Rome wise men discover the secret of ..." dialog and close it [errors/stack traces vary]
I have attached a zip with stack traces from both situations. I hope that helps.
Something else: I'm currently porting some Java-based emulators to JavaScript using GWT (got GameBoy and Atari 2600 working so far). In the end I plan to release an open source library to simplify that process for others (covering video, audio, input, storage, a virtual file system, much better Java System Library coverage, ...).
I've also looked into porting jDosBox and, while it is definitively the most complex emulator I looked at, it seems doable. It would however make it a lot easier if you could help me with one thing, i.e. regularly interrupting the emulation loop(s) to let the browser repaint and handle input events. I'd really appreciate you helping me out with that part, when I get to it (most likely in a few weeks) as I'm not sure I fully understand the structure of jDosBox which seems to consist of multiple nested loops driving the emulation.