Interesting questions Mateus. Firstly, I agree, when the button moved backwards from seat 4 to seat 3 that the hand having had substantial action should be played out. Of course, seats 4 and 5 wound up paying the SB and BB twice, but they failed to speak up and correct the situation before there was substantial action. Secondly, I also agree that moving the button forward to seat 5 afterwards makes good sense. Seat 6 previously paid the BB before the problem occurred and will now be the SB.
As to the second part of your question: If the situation been different - the button moved from seat 4 to seat 7 as you suggested - the substantially acted hand would again be played out. Your question is then, should the button then be moved backwards to seat 5 and then 6 to correct the skipped seats before again skipping ahead to seat 8 - correct? While obviously unorthodox, I cannot think of a good reason not to back it up and correct the button action so that each player is the button once in the round. (Of course, losing players, table balancing, etc., could add to the problem.)