I'm right there with you. I recall there was a Horizontal and Vertical refresh interrupt, and you could catch that horizontal refresh (when the scan line was returning from the right side to the left side) and switch video modes from graphics into text cleanly, then, on the vertical refresh, when the scan line returned to the upper left hand corner, switch back to graphics mode. Allowed you to (easily) display images and text on the screen at the same time (graphics on top part of screen, text below whatever horizontal line you decided to switch back to text)
It was a single interrupt, but you could trigger it on a specific scan line by storing the number of the scan line in $D012. So to do stuff during the vertical blank you'd just need to set $D012 to a large enough value.
It was/is the bread and butter of the C64 demo scene.