From my (very limited) understanding of how really old systems often had very unique hardware features and games that were full of intricate hacks to use these to improve performance, it seems to me that steps 4 and 5 could already take "any amount of time".
Well, yes, but in most cases it was like "oh, it's using some exotic library(and hardware) to do physics? cut this whole segment out then". Then once you have something that builds you can figure out how to reproduce the functionality in some other way.
Oh, one other thing - for instance, one game we worked on that was done for PS1 was made in C, but with a lot of maths methods written in hand-crafted assembly. Things like matrix operations, vector maths etc. None of that code can even build on x64, so it was just removed and replaced with STD calls when possible, or local platform equivalent. The only places which were giving us a headache were methods written in assembly that had no clear purpose(like "ProcessData" with no comment what the "process" part actually did). We had to sit down and actually try to understand what the assembly code did before rewriting it in C++.