If it wasn't obvious, they way you construct the Hyper Graph can impact performance and potentially the result to.
Timing[WolframModel[{{1,2,1}, {5, 6}, {5}} ->
{
{1,11},{2,12},
{5},{7,6},
{11},{11,12},{11,12,11},{5,7}
},
{{1,2,1},{1,2},{1}} , 36, "FinalStatePlot"]]
takes 115 seconds, while
Timing[WolframModel[{{1,2,1}, {5, 6}, {5}} ->
{
{11,12,11},{11,12},{11},
{5,7},{5},
{1,11},{2,12},
{7,6}
},
{{1,2,1},{1,2},{1}} , 36, "FinalStatePlot"]]
takes only 102.
The difference can depending on the rule also influence the result:

Do you have insights or thumb rules how improve the performance of you rules?
Is 'it being safe to permute hyper edges in the return value' equivalent to 'the rule is causally invariant for those initial conditions'?