That's not exactly how it works, but it's a good introduction. In actuality, the "difficulty" is simply a target number. Any number less than the target is considered "lower than the difficulty" regarless of the number of zeroes.
With a number that has a fixed number of digits, more zeros on the left means it has to be a smaller number. So, 20 zeroes on the left obviously means that the found has is low enough.
No. The next has has to have more than 8 zeroes on the left. That's what you just said the difficulty is "more than 8 zeroes in the left". It won't need more than that unless the difficulty increases in the future.
This is not a difficulty spike. There is no adjustment necessary. Difficulty is only changed if the total time for the last 2016 blocks is more (or less) than 20160 minutes. If it is more than 20160 minutes, then blocks are too slow and the difficulty is decreased. If it is less than 20160 minutes, then blocks are too fast and the difficulty is increased.
You are having a conceptual mistake here.