Issue #3260465: Fix RouteNotFoundException WSOD caused by race condition
Fix four interrelated defects that caused intermittent White Screen of Death:
-
Fix duplicate link template key: both list and render routes used 'vmd-preview-list', causing the list path to be overwritten. Now uses separate keys 'vmd-preview-list' and 'vmd-preview-render'.
-
Remove race condition: route creation no longer depends on getViewModes() returning data at route-build time. Routes are now created whenever entity types have link templates, eliminating the window where cached entity types have templates but routes don't exist.
-
Add route existence guard in ViewModeDisplayLocalTask deriver: verify routes exist via RouteProviderInterface before creating local task derivatives, preventing WSOD during partial cache rebuilds.
-
Add try/catch guard in entityOperation to prevent RouteNotFoundException from crashing admin listing pages.