Happy New Year Scott,
Thanks!
3 million SNPs is quite a few for one process, so the easiest way in general to increase run times may be to parallelize i.e. use regionStart, regionEnd and buffer, or split "{}.pos" into smaller sizes then merge the VCFs together.
re: 1, coverage
60X coverage is rather high for STITCH. Are any of the samples lower coverage? STITCH is most efficient when most of the samples are low coverage e.g. <2X. STITCH on default mode naturally downsamples to 50X coverage to minimize risk of floating point errors using --downsampleToCov. You could try setting this lower or manually downsampling even further to decrease runtimes.
re: 2, missing data
Missing data should be fine, as long as there are at least some reads spanning each SNP across the samples. Are you just trying to impute missing genotypes in those 2% of sites? Then you could definitely remove non-missing private singletons, and in general further thin your dataset without much loss of accuracy (you may want to keep sites within a certain distance e.g. 500bp of the 2% of SNPs with missing data to help correctly infer which reads go with which haplotypes).
nGen has no effect on runtime, while the program has quadratic time computational complexity with respect to K (starts to get really slow over K=40)
Finally 10 individuals may be too few? You probably need more like one hundred, or ideally several hundred, to see good results from STITCH
Best wishes,
Robbie