### Godot version

master CI builds

### System information

Linux / Editor with doubles and GCC sanitizers

### Issue description

The `Linux / Editor with doubles and GCC sanitizers` build can fail with a `attempting free on address which was not malloc()-ed` crash in the `Open and close editor (Vulkan)` step.

https://github.com/godotengine/godot/actions/runs/5366302204/jobs/9735786296#step:15:138
https://github.com/godotengine/godot/actions/runs/5389199469/jobs/9783070708?pr=78740#step:15:138

The failure doesn't seem related to either PR (in fact one of them is just a docs change). I have only seen this issue these two times, still probably worth looking into.

### Steps to reproduce

Open and close https://github.com/godotengine/regression-test-project/archive/4.0.zip using the Vulkan renderer.

### Minimal reproduction project

https://github.com/godotengine/regression-test-project/archive/4.0.zip
};
	RID_Owner<RenderPipeline, true> render_pipeline_owner;
	struct PipelineCacheHeader {
		uint32_t magic;
		uint32_t data_size;
		uint64_t data_hash;
		uint32_t vendor_id;
		uint32_t device_id;
		uint32_t driver_version;
		uint8_t uuid[VK_UUID_SIZE];
		uint8_t driver_abi;
	};
	struct PipelineCache {
		size_t current_size = 0;
		Vector<uint8_t> buffer;
		VkPipelineCache cache_object = VK_NULL_HANDLE;
	};
	PipelineCache pipelines_cache;
	WorkerThreadPool::TaskID pipelines_cache_save_task = WorkerThreadPool::INVALID_TASK_ID;
	void _load_pipeline_cache();
	void _update_pipeline_cache(bool p_closing = false);
	void _save_pipeline_cache_threaded(size_t pso_blob_size);
	struct ComputePipeline {
		RID shader;
		Vector<uint32_t> set_formats;
		VkPipelineLayout pipeline_layout = VK_NULL_HANDLE; 
		VkPipeline pipeline = VK_NULL_HANDLE;
		uint32_t push_constant_size = 0;
		uint32_t push_constant_stages_mask = 0;
		uint32_t local_group_size[3] = { 0, 0, 0 };