You don't need to explicitly add the vector store or delete anything. Just a single storage context that is used for both indexes
The example I gave above works out of the box no? Looking at your code, I might do this
# create
storage_context = StorageContext.from_defaults()
index1 = VectorStoreIndex(format_nodes, storage_context=storage_context, service_context=service_context)
index1.set_index_id("index_1")
for node in format_nodes:
node.text_template = '{metadata_str}'
index2 = VectorStoreIndex(format_nodes, storage_context=storage_context, service_context=service_context)
index2.set_index_id("index_2")
# save
storage_context.persist(persist_dir="./storage")
# load
from llama_index import load_index_from_storage
storage_context = StorageContext.from_defaults(persist_dir="./storage")
index1 = load_index_from_storage(storage_context, index_id="index_1")
index2 = load_index_from_storage(storage_context, index_id="index_2")