I didn’t see this thread until now. Replying in case anyone still cares.
Anyway… this may be TL;DR, but here goes.
The Inform 6 library was never created with 8-bit machines in mind. A minimal game with one room and no objects compiles to a Z-code file of about 65 KB with the latest version of the library, IIRC. This is without strict error checking, otherwise it’s even bigger.
When playing a z5 game on Ozmoo, there is 49 KB of RAM available for the story file. The dynamic memory part of the story file (say ~10 KB for a simple game like 9:05) must stay in RAM at all times. So, there’s ~40 KB left for story data. Unless the entire game fits in 49 KB, Ozmoo will read the different parts of the story file as they are needed, overwriting some other part to make room (this is called paging or virtual memory). If the parts needed to complete any single move the player makes are always bigger than the available RAM, Ozmoo will need to read parts from disk every turn. This gets tedious very quickly. The newer versions of the library pretty much guarantee that this will be the case, even for very simple games.
If you have a RAM expansion, Ozmoo will let you use it for caching the whole story file, and read from the RAM expansion instead of the disk, thus speeding up gameplay a lot. Playing on a C64 with an SD2IEC is also a lot faster than one with a 1541 disk drive.
Early versions of the Infom 6 library produced smaller code, which helps a lot. And Inform 5 even more so. The structure of the code may also have been more suitable for machines that need to utilize virtual memory. One thing is for certain: Early Inform 6 games are a lot faster than late ones. And Inform 7 games and Dialog games are at least an order of magnitude slower than new Inform 6 games.
The z3 format is not faster than z5 in itself. One difference is that the z3 format leaves statusline printing to the interpreter, which means that part is very fast. The z5 format requires a slightly larger interpreter, which leaves less RAM for story data, but the difference in Ozmoo’s case is only about 1.2 KB. Apart from this, the z5 format actually supports some very nice instructions which can be used to make programs faster. This was used by Infocom, but not at all by Inform 6, as far as I know.
As for printing the statusline in z5 games: Infocom’s z5 games were carefullt designed to be fast on the platforms they were to be released on. One detail that came out of this is that a statusline for a 40 character wide screen is cleared using a loop with four iterations, printing ten spaces at a time. In the Inform library, the same effect is accomplished with a loop which iterates 40 times, printing a space each time. Also, the loop code is less efficient than in Infocom’s loop. This is just an example of the effects of the Inform 6 library being written on and for machines that were about 15 years newer.
I would perhaps recommend Ad Verbum. It has one or two quote boxes which are actually too wide for the screen, but Ozmoo handles the situation pretty gracefully. And it’s an excellent game! The early z3 version of Curses! is a good fit too.