This update used to take 30 minutes. Now it's taking 4 hrs and hanging.
There is intense disk IO with no memory use. I see a wait for a resource with a wait-type of PAGEIOLATH_SH
Seeing intense disk IO makes sense, PageIOLatch generally refers to an I/O wait relating to reading a page. You may wish to consider checking for disk issues e.g.(RAID in FT mode), or for unrelated heavy disk I/O of some kind in progress.