Thank you again.  So for the case of the integer tuple, I can imagine a slightly hacky way to substitute a tensor with dtype int and register it as a buffer.
I’m still mystified about the growing list of tensors.  Could I self.register_buffer an empty tensor and safely reassign it during code execution during forward so that it can grow longer?  Like this
    self.register_buffer('a', a)

def forward(self, x: torch.Tensor, extend: bool):
    if extend:
        new_tensor = ...
        self.a = torch.stack(self.a, new_tensor)