On persistent personal VDAs the bloat is rarely the profile, it is system crud and the WU pipeline, which is also why patching starts failing. Profile a sample with TreeSize first, then target these high-yield paths:
• Component store: DISM /Online /Cleanup-Image /StartComponentCleanup (avoid /ResetBase unless you accept losing update rollback)
• C:\Windows\SoftwareDistribution\Download (stop wuauserv, clear, restart) and the Delivery Optimization cache
• CCMcache (prune via the ConfigMgr resource COM API, never raw delete)
• C:\Windows\Temp, %LOCALAPPDATA%\Temp, Teams (classic + new), Edge/Chrome and OneDrive caches
• CBS logs, WER, thumbnail/icon cache, old shadow copies if enabled
For automation: ship it as an SCCM Configuration Baseline (detection + remediation script) so you get compliance reporting and self-healing across all 250, rather than a one-shot logoff script. Keep ControlUp for a free-space alert around 15% so WU never gets blocked again. Storage Sense is a fine backstop but not the primary mechanism, and Geert is right that aggressive WU purging can break servicing, so test StartComponentCleanup cadence before rolling wide.
Clear the component store and WU staging first, that reclaims more than anything else and unblocks your updates.