Wow, very cool! Does 8088 MPH run correctly now? I might need to get a move on with the next (even more sensitive) testcase!
As for the original question about multiply/divide timings - there was a thread here a while ago (8086 multiplication algorithm?) where I pointed superfury to my cycle-exact multiply and divide code. The REP code there should be cycle-exact as well, though is less thoroughly tested. SALC should be there too, and I don't think there's anything complicated about the timings of that.
I haven't done any testing with NMI or trap yet, but I'd be surprised if they were different from other hardware interrupts in terms of the timing.
A DMA read on channel 0 is required to refresh all system RAM. Reading from RAM will also refresh, but will only refresh the bank than you read from (other banks won't see the refresh). A DMA write from channel 0 I'm not sure about - I have a nasty feeling that it may write the same value to all banks (but would also refresh those rows at the same time).
The CGA wait states can be done by finding how many CPU cycles between some arbitrary point (power up, say) and the CPU cycle where the CGA access happens, modulo 16. Then look up the result in an array which is some permutation of {3, 4, 5, 6, 7, 8, 4, 5, 6, 7, 8, 4, 5, 6, 7, 8}. Some playing around may be needed to determine the permutation corresponding to the "wait 8 hdots, wait for the next 16 hdot boundary, wait for the next CPU cycle to start" algorithm that I've previously described.
"RAM refresh read does a prefetch queue fill" does not sound right to me at all. The RAM refreshing is all done by the motherboard and the CPU doesn't know anything about it. The prefetch queue is entirely inside the CPU and the motherboard doesn't know anything about it. A CPU bus access (including memory, including prefetch) can delay or be delayed by a DMA bus access (including refresh).
Let me know if there's any questions in this thread that I missed.
There's more that I have discovered that I haven't written up on my blog yet. Please feel free to ask me questions here to save yourself from having to trawl through my blog.