I tracked a few runs. 1500s or over 2000s are not the exception. And in some runs it simply does not finish (and the overall test-run times out after 300s)
Also looked at the code, it is checking a lot of combinations.
Do all of those make sense? For example there are 6 combination between all the transaction providers and snapshotting. That seems unnecessary.