The VM was calling PackageUtil.getAllValidPackages(context) eagerly in its constructor, which Hilt creates on the main thread. The PackageManager IPC plus a per-app loadLabel() for sorting froze the screen long enough that the existing ContainedLoadingIndicator never got a chance to render.