The recently released VK_EXT_surface_maintenance1 and VK_EXT_swapchain_maintenance1 extensions resolve a number of longstanding issues with Vulkan’s WSI extensions. These extensions will be ratified as KHR.
Most importantly, it is now possible for applications to know when resources associated with a present operation can be destroyed, e.g. the semaphores provided in VkPresentInfoKHR::pWaitSemaphores. This is done by providing a fence in VkSwapchainPresentFenceInfoEXT that is chained to VkPresentInfoKHR. Once the fence is signaled, the application can destroy said semaphores. Additionally, with the outstanding present operations processed according to these fences, the application is able to safely destroy swapchains (retired or otherwise).