I'm skeptical of this logic. Suppose one wants to keep 4 files, but in a single second, the appender wants to "roll over" 5 times. If the start time is at 10 seconds, we'll get files:

```
10 seconds
10 seconds renamed to 11 seconds
10 seconds renamed to 12 seconds
10 seconds renamed to 13 seconds
(delete 10 seconds file because it's being rolled over.)
10 seconds (despite being newer than 13 seconds)
```

I would consider using nano seconds to differentiate as needed, though I realize that breaks the recursive structure of the function. Even sleeping might be desirable; so long as there's room in the `appendCh` there should be no blocking?