Ah, yeah I should have thought of states when I was doing it as well.
I added the new variables to the state now so let me know if it's fixed (remember that you'll have to delete the greenzone file in the .tasproj or else it will automatically crash from not matching state size.)
Also I found a whole bunch of test roms here:
https://github.com/AntonioND/gbc-hw-tests
So looks like I have a lot of work to do!
I'll look at the other commits after I sort everything out here and can look at exactly what is happening.
EDIT: I finally found the bug in mode 3 timing during windowing and now I am syncing up with Gambatte. Problem solved! The new test roms also revealed a couple other minor bugs so things have been really productive all around.
Incidently, the test halt_if relies on the same halt bug that is needed in pokemon yellow, so this information was out there (although obscured) 3 years ago! Kind of funny how information is just strewn about out there.