How to Calculate the number of DFTs taken in a STFT
I will first produce a lower number based on the covering of all the non-zero sample set. 

With a window of size $W$, counting samples from $0$ to $S-1$, the first window containing at least  one sample covers $[-W+1,0]$. If the discrete overlap range is a number of samples $O&lt;W$, the next window will be $$[1-O,W-O]=[-W+1,0]+(W-O)$$ and the others $k$th hops are $$[-W+1,0]+k(W-O)$$
Those intervals exceed the last sample $S-1$ when $0+k(W-O)\ge S-1$ or 

$$k\ge \left\lceil\frac{S-1}{W-O}\right\rceil$$

so the covering takes $ \left\lceil\frac{S-1}{W-O}\right\rceil+1$ windows, hence DFTs. 

Does this suffice in general, as we did not use any window property? For instance, if the window is non-null at one point only (or vanishes), the $O$ cannot be chosen arbitrarily. 

The question in general seems open to me. For randomly chosen complex filterbanks, the smallest oversampling seems to suffice for recovery. For other tasks, who knows?