I have one slightly major point and a few minor ones. I'll start with the major point. While your method is certainly faster than mine, you introduce another sort of "maximum depth": the maximum size of gap vectors to search. In my paper I went to great lengths to avoid introducing this new parameter; essentially you are using gap vectors in my paper's Definition 6.1, G(pi), sense, whereas my algorithm uses the G_r(pi) sets that Proposition 6.3 is concerned with. I think it might be possible to make this change to your algorithm, which would get rid of the "maximum length of gap vectors" parameter.
Now for the minor things (which have been adjusted to refer to the updated version of 27 March).
* On the top of pg. 4, where you use the word "obey" for the first time, it is implicitly defined as: a sequence of numbers obeys a gap condition if that gap condition is satisfied. Both you in your first paper and I in my paper used "obey" to mean exactly the opposite! I think being an empty set is a very very bad thing, and should happen because you failed some test, not because you passed one! (N.b.: if you decide to make a change about this, you should search for "satisfy" and "satisfied" as well.)
* Pg. 4, fourth definition: "={p}" is a typo.
* Pg. 6, examples: it was a bit confusing me that when you write things like "there is only one unfortunate event that 1 participates in" you mean the entry in position 1, *not* the actual "1" 1. Perhaps instead "... that pi(1) participates in" here and also elsewhere in the examples?