Well, Summit is down for the day so I moved to NERSc and OMP/FieldSplit/cuSparse/[ILU,LU] seem to be working there. I added PetscInfo lines, below, and the answers with 10 species/threads are perfect.
It looks like OMP threads are serialized (see below) but in random order. You can see that field 0 ("e") calls solve 14 times and converged in 13 iterations.
I'm not sure what to make of this. I think I'll try to see if I can see any difference in total run time with 1 and 10 OMP threads.
9 SNES Function norm 4.741380472654e-13
[0] MatCUSPARSEGetDeviceMatWrite(): Assemble more than once already
[0] PCSetUp(): Setting up PC with same nonzero pattern
[0] PCApply_FieldSplit(): thread 2 in field 2
[0] PCSetUp(): Setting up PC with same nonzero pattern
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] PCApply_FieldSplit(): thread 7 in field 7
[0] PCSetUp(): Setting up PC with same nonzero pattern
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
....
[0] PCApply_FieldSplit(): thread 0 in field 0
[0] PCSetUp(): Setting up PC with same nonzero pattern
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
Linear fieldsplit_e_ solve converged due to CONVERGED_RTOL iterations 13
[0] PCApply_FieldSplit(): thread 5 in field 5
[0] PCSetUp(): Setting up PC with same nonzero pattern
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)
[0] MatSolve_SeqAIJCUSPARSE_NaturalOrdering(): Cuda solve (NO)