Hidden and weights are different here, If you go through LSTM equations you will get some maths–
LSTM gates(update/ouput etc) = Fun1(W1 * input + B1 + W2 * Hidden (t-1) + B2)
Cell(t) = Fun(Cell (t-1), LSTM gates)
Hidden (t) = Fun3( Cell(t), LSTM gate)
If my first sequence Seq1 = tok11 + tok12 + tok13
and my second       Seq2 =  tok21 + tok22 + tok23
If I process tok11 or tok21 here Hidden(t-1) is nothing and initialize to zero and it has nothing to do with Weights or biases. If I process tok12 then hidden outcome from previous token tok11 will be my H(t-1) and this is already calculated. I can not pass tok13 (last token of Seq1) hidden outcome to my first token of Seq2 which is tok21, that is the reason for every new sequence Hidden state set to zero.