We haven't heard much demand for the complex gateway, hence why it hasn't been added before.
An n-out-of-m join is actually not that hard to do. The 'blocked' bit is a bit trickier.
The spec also mentions 'If tokens arrive later on the two remaining Sequence Flows, those tokens cause a reset of the Gateway and new token can be produced on the outgoing Sequence Flows. To determine whether it needs to wait for additional tokens before it can reset, the Gateway uses the synchronization semantics of the Inclusive Gateway.'
This is rather hard, as it implies keeping state somehow in the gateway.
I'm actually like the idea of Tijs (having a Java-based gateway), I think that would solve already a lot of use cases.