When you supply a time of zero to the schedule function, the engine will keep processing your code until it's time for the engine to tick. Once the tick is finished and other schedules held from before (I'm unsure of how the engine prioritizes them) have been processed, depending on prioritization, your script will continue.
tl;dr using "zero" for a schedule time makes your code wait until the engine has free time for you. Your "zero-schedule" script will execute as fast as possible without lagging the server.

* Packets are received all throughout the tick but the OS probably holds them in a buffer until Torque signals that it wants the packets.
** This window is for processing schedules that need to run and for processing other events like TCP receive events and other triggers.
** If the engine is spends too much time in the grey field, the server will start to "lag" as the processes of the next tick will be delayed.
As I'm no expert in the design of TGE, this is an educated guess as to how the game works. I really have no idea how the engine prioritizes schedules. The grey field may actually be mixed with the orange and blue fields. Perhaps one day I'll get around to looking at the source and attempt to understand it more.
As you can see, the engine will work on your script (with the "zero-schedules") until the engine has to tick again, after which your "zero-schedule" script will continue.