Destroying Then Recreating In Same Thread Plugin Guis Yields

If you create a plugin gui using plugin::CreateDockWidgetPluginGui, destroy it, and then attempting to re-create it with the same widget id and in the same thread, it will result in the thread yielding without any error being thrown. The PluginGui is created, but the and can be accessed by other threads, but the thread that re-created be yielded.

Command-line code that shows the thread yielding:

--Workaround for plugin access through the command line.
local plugin = PluginManager():CreatePlugin()

--Store the dock information.
local DockInformation = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float,true,true,200,50)

--Create the window the first time.
print("Creating...")
local Window = plugin:CreateDockWidgetPluginGui("TestWindow",DockInformation)
print("Created.")
wait(1)
Window:Destroy()

--Create the window the second time.
print("Creating...")
local Window = plugin:CreateDockWidgetPluginGui("TestWindow",DockInformation)
error("Created (didn't yield thread).")

Command-line code that shows it is fine being re-created in a separate thread:

--Workaround for plugin access through the command line.
local plugin = PluginManager():CreatePlugin()

--Store the dock information.
local DockInformation = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float,true,true,200,50)

--Create the window the first time.
print("Creating...")
local Window = plugin:CreateDockWidgetPluginGui("TestWindow",DockInformation)
print("Created.")
wait(1)
Window:Destroy()

--Create the window the second time.
--Note: coroutine.wrap doesn't work as a workaround.
spawn(function()
	print("Creating...")
	local Window = plugin:CreateDockWidgetPluginGui("TestWindow",DockInformation)
	print("Created (didn't yield thread).")
end)

This is happening for me consistently in the command-line and plugin contexts on Windows 10.