GBHawk is now extremely accurate, I used the new build today to begin rewriting the Yellow TAS past a previous desync and it worked, new record longest syncing GBC TAS at about 46 minutes. Here's some documentation of how that works.
https://pastebin.com/DXiDT9ZT
I do have 2 things to mention now that sync is so accurate:
GBHawk appears to emulate the visual effect of an LCD disable differently from other emulators and console. For example during Pokemon map transitions the LCD is disabled and console and emulators show a white screen during this time frame, where GBHawk appears black. This got me a bit freaked out about another desync but I was able to write past it so it appears to just be a visual difference.
Second, it's a lot slower than Gambatte when the fps throttle is turned off, which makes writing these new hyper-accurate TASes a lot longer, but if the slowness is related to the improved accuracy we might have to live with that.