Here is a video where Martin Piper uses a C64 debug tools to figure out how Nine was created: https://m.youtube.com/watch?v=Ik1vsMM2EuY .
Across an entire scanline I think you normally get something like 63 6510 cpu cycles to do 'work' in, but only 23 if you hit a badline - keeping in mind that some instructions take multiple cycles to execute. This probably makes the timing difficult or impossible to manage with the characters turned on.
During a badline it's simply impossible write to the VIC-II's registers during the left border. Though, this seems to indicate it's still possible to open the right border during a bad line, but it's a 1 cycle window (maybe 2).
[1] https://nurpax.github.io/posts/2018-06-19-bintris-on-c64-par...