TLDR; Not out of the box, you need to customize bpmn-js.
There are a number of components you need to implement custom modeling palette/rules:
- ContextPadProvider - responsible for showing the context pad / replace menu
- PaletteProvider - adding a custom palette
-
ModelingRules - disallowing more than
noutgoing/incoming edges to user tasks
At some point we will provide functionality to make this kind of customization easier. We are not there yet, though.