So two things were the problem here, both confirmed by Microsoft:
- The replication update sproc was indeed generating execution plans that join to another table. This is because there's a View with SCHEMABINDING between the replicated table and the one that the exec plan is joining to. It seems crazy to me that this is what happens in these circumstances, but MS has a long winded reason as to why this is the case. It should be noted that two different exec plans were being generated (one with 99% SORT), so forcing to the good one was obviously optimal.
- Normal heavy hitting queries in another DB pegging disk use. What threw me off one of the times that this happened I was able to stop activity in this DB completely and replication still took a long time to catch up -- this is because # 1 was masking this issue. I hate to do this but Im going to mark this as the Answer due to how rare this scenario likely is and hoping it saves someone some pain in the future. Thanks to all that assisted here!