Interesting idea, can be achieved quite simply by using a single text event and re-initiating a timer
on *:text:*:#yourchan:.timerstory $+ # 1 600 .play # file.txt 3000
You can use /play stop at any time to force an end, the 3000 is the time delay in milliseconds between each outgoing message, and change file.txt to the filename of the story. I made the timer channel specific, allowing you to specify multiple channels for it to operate on
Note that there are other channel events that may be considered activity, such as actions and CTCPs. You can include that same command in their own respective events if you want to consider those too (on *:action:*:#: and ctcp *:*:#:)