That's pretty much what I've been doing. It worked fine for 6-Competitors, but if you look at, for example the 8-Player schedule, it's a large jump to take the 3v4 match down towards the end of the event; this also has immediate knock-on effects on the rest of the schedule, etc...
That gets even worse for the method described for odd number of players, since then even the (without the #1 player) 2v3 match is buried upstream...
In other words, that's back to doing it all by hand as I have been. That's pretty specifically why I'm looking for an algorithmic solution, if one exists.
I'm attaching a screenshot of the Excel spreadsheet I've been using; I can move the matches around and it will count the number of fights between, the 'time-off' for each fighter before his next fight. I hand-mark (in yellow), the places where I feel like it's either too short or too long a wait, and I'd like to make it better. But because each time I move a fight, it has an effect on the time between someone else's matches, what's in the pic here is as close as I've been able to get to acceptable.
Right now, the 5-Person pool is, I think, as good as it can be. The 6-Person pool is OK, and the 7-Person is pretty good. But when I get to 8, 9, or 10 people, I just feel like there *should* be a better way. I just can't find anything that speaks to this kind of problem when googling...