If you add scene fragment to the scene, it means that fragment should be visible when scene is shown. So, I'd say it's working as intended.
But I think you want to set conditional to your fragment:
Lua Code:
local tlw = WINDOW_MANAGER:CreateTopLevelWindow("tlw")
local hidden = true
zo_callLater(function() addon.AddUiFragment(tlw) end,4000)
function addon.AddUiFragment(control)
local fragment = ZO_SimpleSceneFragment:New(tlw)
fragment:SetConditional(function() return hidden end)
HUD_SCENE:AddFragment(fragment)
HUD_UI_SCENE:AddFragment(fragment)
end
Another method would be adding or removing scene fragment.