So each private key can ultimately produce two different addresses - one compressed and one uncompressed?
Yes.
And different private keys can produce the same address
Yes, in theory. It has not happened yet.
(i.e. there are 2^96 private keys for each address)?
Not necessarily.
So they're the same keys but when hashed produce different addresses?
Yes.