I don't know about the guts of Gadfly, but you may have run afoul of Python's file handling. The docs warn that data written to a file object can not be counted on to appear on the disk until it is either closed or flushed. (I think, though, that this is very rarely a problem when dealing with human timespans.) I would think that an orderly shutdown of Zope would instruct Gadfly to shutdown gracefully, but I can't be sure of that.
O.k., the time span was about a day, so normally that should mean that everything has been flushed. But who knows? I have read something about a Gadfly option that does long-time caching instead of frequent commits to the file system. Whether that one is active in Zope's version of Gadfly I don't know. Zope definitely does not shutdown "gracefully". Even if I use the official "stop" skript it just kills the process ("kill" as in "killer"). That means that the sub-processes do not get a termination message or so. They are just killed. The "stop" button may be a bit more graceful, but I haven't checked that yet. Joachim