Quick reply, I didn’t try your code but it seems that you are ignoring the lstm output
i.e. these two lines:
h_t1, c_t1 = self.lstm_1(input_t, (h_t1, c_t1))
h_t2, _ = self.lstm_2(h_t1, (h_t2, c_t2))

should read:
_, (h_t1, c_t1) = self.lstm_1(input_t, (h_t1, c_t1))
_, (h_t2, _) = self.lstm_2(h_t1, (h_t2, c_t2))

if you are not interested in the lstm output at all and just want to use the hidden states.
Check the LSTM output here https://pytorch.org/docs/stable/nn.html#lstm 239