Glancing at the notes you posted on Google docs, I think your idea should work fine (but see my caution about time-step-error scaling below). You can develop a Trotter decomposition that breaks up the Hamiltonian terms into different groups of terms, all of which mutually commute. Then you can use the techniques from the Pirvu paper that Mingpu linked to exactly exponentiate each one. Of course the first of these two steps (splitting operators into groups and developing a Trotter approximation) will introduce some time-step error, which is unavoidable.
Another approach which could be simpler for you is to use the approach in this paper:
The approach in this paper works for any Hamiltonian whether or not the terms commute. It also comes with a guarantee that the Trotter error does not depend on the system size. If you do go with the approach you proposed you'd have to think about whether it has this same guarantee (it seems you have thought about this in your notes; I'm just mentioning this caution to make sure you carefully compare the two methods).
In ITensor we have already implemented the Zaletel et al. approach automatically for you (although I haven't documented it much on the website). But if you follow this code formula:
the function called
toExpH takes an AutoMPO as input and generates an MPO which is the exponential of all the terms included in the AutoMPO.