In the short term as a quick fix you can just go through a python dict if your dataset is not too big for your memory:
import sent2vec
from datasets import load_dataset

sent2vec_model = sent2vec.Sent2vecModel()
sent2vec_model.load_model(sent2vec_path, inference_mode=True)

datasets = load_dataset("text", data_files={"train": train_f, "validation": valid_f})

# Maybe this can be batched, I don't know about sent2vec_model
temp_train_embeddings = [sent2vec_model.embed_sentences(sentence["text"]) for sentence in datasets['train']]
temp_validation_embeddings = [sent2vec_model.embed_sentences(sentence["text"]) for sentence in datasets['validation']]

preprocessed_train = Dataset.from_dict({"text": datasets['train']["text"], "embeddings": temp_train_embeddings})
preprocessed_validation = Dataset.from_dict({"text": datasets['validation']["text"], "embeddings": temp_validation_embeddings})

preprocessed_dataset = DatasetDict({'train': preprocessed_train, 'validation': preprocessed_validation})

But we should have something a lot simpler imo, this will be a frequent occurrence I think.