Thank you everyone for providing valuable feedback that helped me narrow down the world of what could possibly be going wrong and identifying the key issue.
Ultimately, the problem was that I hadn't noticed that at some point the second alignment had failed, and I was trying to run all these commands on an empty .bam file. Thus - the problem wasn't the .dict at all - but the files that were being used for calling.
I'm a little confused about how I missed this because I had been using samtools to take a peek at every file and make sure they looked fine - but this troubleshooting process has taken so many iterations that I must have missed something.
I was inspired by this post, where someone encounters a similar issue: https://gatkforums.broadinstitute.org/gatk/discussion/10130/gatk-3-8-dictionary-cannot-have-size-zero
Now that I went back and make sure the first and second alignment steps produced .bam files, I do not get the .dict error, and my .vcf files have variants written in them.
Thank you all!