Not that there is anything wrong with modelling your own dataset after torchtets, but perhaps the following looks more straightforward:
You cannot take the PyTorch dataset concatenation if you want to stick with the torchtext.data.Dataset. What you could do is take two (or more) tabular datasets, say ds1 and ds2, and create a new torchtext.data.Dataset passing ds1.examples + ds2.examples and ds1.fields to the constructor (provided fields are compatible). That should give you a combined dataset supporting the torchtext extras like splits.
Best regards
Thomas