Did you try setting the active directory in snakemake to be the temporary directory where you are running things? Ideally you would want to either have one sub directory in /tmp assigned per subject run (and you could then go back and find it again to update the run for the subject) OR be sure to clean up after you do the run. If your snakemake file is being run from the base of a directory in the container where it doesn't or can't save the state, then it would be logical that it's starting over again! What I did for snakemake.scif (you have probably seen this but in case not) is to always cd to the mounted folder first (
see here) and also to copy a (fresh) Snakefile there each time (here in the
setup app) and then in the Snakemake file I am sure to set the
workdir to always be this same spot in the container, which you get to decide where it binds on the host (where either you maintain or clean the .snakemake folder).
I think if Snakemake works like make it wouldn't rely just on a directory, but on the existence of inputs and outputs where they are expected, but I'm not totally sure. Too much snakey thoughts !! :O