I don't have an answer to the question --- again, this is not an answer. It is, though, an explanation of some sign conventions that appear in dg vector spaces. My thesis is that if you thoroughly understand the signs for dg vector spaces, then you understand the signs for the rest of homological algebra. (But this thesis is not supported in this answer, and I don't intend to provide evidence; I am not a homological algebraist.) To reemphasize, I do not have a reference to the mathematical literature.

There is a very good category of functors from $\mathbb Z$, thought of as a category with only identity morphisms, to $\text{Vect}$ (or $\text{AbGp}$, but I'm going to pretend we're over a field). The addition map $+ : \mathbb Z \times \mathbb Z \to \mathbb Z$ leads to a tensor product on $\operatorname{Functors}(\mathbb Z \to \text{Vect})$ by push-forward. The resulting monoidal category is in some sense "the free monoidal [...] category on an invertible object", and so maybe deserves to be called $\text{Vect}[X,X^{-1}]$, where $X$ is the functor $\mathbb Z \to \text{Vect}$ that assigns the one-dimensional vector space $k$ to $1\in \mathbb Z$ and the zero-dimensional vector space $0$ to all other terms. So to give a braiding on this category it suffices to give the data of how to braid $X$ past itself, i.e. the braidings are parameterized by $\operatorname{Aut}(X^{\otimes 2}) = k^\times$. The symmetries are precisely the square-one elements of $k^\times$, and so if $k$ is not of characteristic $2$, there are two of these, $\pm 1$. The symmetric monoidal category $\text{GVect}$ of *graded vector spaces* is $\operatorname{Functors}(\mathbb Z \to \text{Vect})$, with $\otimes = $ push-forward along $+$, and with the symmetry given by the choice of braiding $-1 \in \operatorname{Aut}(X^{\otimes 2})$.

A symmetric monoidal linear category is enough data to talk about Lie algebra objects, and there is a distinguished such object in this category. Namely, the object $X$ has a unique Lie algebra structure, the abelian one. Let $\mathfrak X$ denote this Lie algbera (the abelian Lie algebra on $X$). The symmetric monoidal category $\text{DGVect}$ of *dg vector spaces* is the symmetric monoidal category of modules (in $\text{GVect}$) of the Lie algebra $\mathfrak X$.

I think this point of view does a good job of explaining what are the correct signs to include when working out tensor products and inner homs of dg vector spaces. In particular, if $A,B$ are dg vector spaces, then $\mathfrak X$ acts on $A\otimes B$ the way a Lie algebra ought to act on a tensor product. Namely, if $a\in A$ and $b\in B$, and writing $x\in \mathfrak X$ for the basis element of $\mathfrak X$, then the action $X \otimes A \otimes B \to A\otimes B$ is given by
$$ x \cdot (a\otimes b) = (x\otimes 1 + 1 \otimes x)(a\otimes b) = (x\cdot a) \otimes b + \operatorname{flip}(x,a) \cdot b.$$
Here $\operatorname{flip}(x,a)$ is the element of $A\otimes X$ corresponding to $x\otimes a$ under the braiding. When $a\in A$ is a homogeneous element of degree $|a|$ for the $\mathbb Z$-grading, we have $\operatorname{flip}(x,a) = (-1)^{|a|}a\otimes x$. Then the "$\cdot b$" denotes the action of $X$ on $B$. (Of course, the whole point is that $x\in \mathfrak X$ implements the differential.) So this is the algorithm for computing signs in tensor products of dg vector spaces.

There are some particular distinguished objects of $\text{DGVect}$. Namely, for each $p\in \mathbb Z$, the object $X^{\otimes p}: \mathbb Z \to \text{Vect}$ is the functor that assigns $k$ to $p\in \mathbb Z$ and $0$ to all other elements. So $X^{\otimes p}$ is an object of $\text{GVect}$, but actually it has a unique structure as an object of $\text{DGVect}$ (namely, the structure where the Lie algebra $\mathfrak X$ acts trivially). As an object of a monoidal category, it determines an endofunctor of $\text{DGVect}$ (which in your notation acts "from the right"), namely the functor $[p] = \otimes X^{p}$.

From this point of view, your isomorphism $(A[p]) \otimes (B[q]) \cong (A\otimes B)[p+q]$ is clear. Spelling it out, it is the isomorphism
$$ A \otimes X^{\otimes p} \otimes B \otimes X^{\otimes q} \cong A \otimes B \otimes X^{\otimes(p+q)} $$
and so the only natural choice is to use the flip map $\operatorname{flip}: X^{\otimes p} \otimes B \to B \otimes X^{\otimes p}$, which has some signs given the choice of braiding. (On the homogeneous part of $B$ of degree $r$, it acts by $(-1)^{pr}$.) I tend to like to write all functors on the left, but I'll note that in this case it makes the most sense to use "shift" functors from the right, because in my convention $\mathfrak X$ (= the differential) acts from the left, and so it is fewer signs if the shifts act from the right.

One final note is important to make. Fix $p,q$. Then there are isomorphism $X^{\otimes p} \otimes X^{\otimes q} \cong X^{\otimes (p+q)} = X^{\otimes (q+p)} \cong X^{\otimes q} \otimes X^{\otimes p}$. But this is *not* the correct isomorphism to take. The correct choice is the flip map, which charges a sign of $(-1)^{pq}$ for the intermediate "$=$". Remembering this helps to clarify sign errors that can arise when folks cavalierly try to write $A[p][q] = A[p+q] = A[q][p]$.

I hope this explains the signs. What I can't be bothered to care about is whether the differential should increase degree by $1$ or decrease it (corresponding in my conventions to whether $\text{DGVect}$ is the category of $X$-modules or of $X^{-1}$-modules), and whether the shift maps should shift in the degree specified or the other direction (maybe your notation is to write $[p] = \otimes X^{\otimes (-p)}$). If you write the shifts on the right, they you are simply wrong to define $A[p] = X^{\otimes p} \otimes A$, although that choice is isomorphic to better ones (for example, you would be very justified to write functors from the left and choose $[p]A = X^{\otimes p}\otimes A$, although then note that if $\mathfrak X$ also acts from the left, then you'll have to think about signs to get correctly the action $\mathfrak X \otimes [p]A \to [p]A$, since this map is really $\mathfrak X \otimes [p] \otimes A \overset{\text{flip}}\longrightarrow [p]\otimes \mathfrak X \otimes A \overset{\text{act}}\longrightarrow [p] \otimes A$; then again, maybe you want to say that the differential is a map $[1]A \to A$, in which case in my conventions you do want functors from the left). The only thing that is truly *wrong* is to come up with operations that act "from the middle": all the natural structure is buildable out of tensor products and the like, done from the left and from the right, and if you keep track of all this, the signs work out.

3more comments