BPMN is supposed to support n our of m joins but I couldn't find anything mentioning this in the activiti user guide. Does Activiti support this? If not how do people typically satisfy this use case using activiti?
You mean using a joining parallel gateway that continues, even if only N of M incoming flows are completed? AFAIK, this is not possible, using plain parallel gateways? It's possible, however, by using interrupting boundary-events.