The first time you see a player doing this you should warn him and make him catch up on his time. If you are watching the game closely it is likely that there will only be 2 or 3 moves to make up.
Note that he need not write after every move but must not make a move if he has not written his previous move. In that case, particularly with a blitz finish you should immediately stop the clocks and only then issue the warning. If you feel that you have delayed significantly in stopping the clocks to the second player's detriment then you may adjust the second player's clock accordingly.
If he repeats the offence you should give him a final warning, make him catch up again and give his opponent an additional 2 minutes.
If he repeats the offence after your final warning then default him. Award him 0 and his opponent 1 unless it is impossible for his opponent to deliver mate by any sequence of legal moves. In that case (mate not possible) then award each player 0.5
Under the old rules stepping in without a complaint was at your discretion.
Under the new rules you are obliged to intervene regardless of whether or not there has been a complaint.
Edit: As Remco points out I have only answered the easy parts of his question above ;-). I've had a long think about the difficult part and this is what I came up with.
This situation is not covered explicitly in the rules. Instead, as the introduction to the rules state, you are left to make your own judgment based on analogous situations in the rules and by fairness, logic and special factors.
I will give two possible solutions which might help you if the situation arise again.
1) 8.1e states the following:
If a player is unable to keep score, an assistant, who must be
acceptable to the arbiter, may be provided by the player to write the
moves. His clock shall be adjusted by the arbiter in an equitable way.
This adjustment of the clock shall not apply to a player with a
disability
When I have played in competitions where a player has been "unable to keep score" (the opponent of a teammate in a league match) the solution was that the player had 10 minutes deducted from his time before the start of the game. This was with a time control of 90 minutes for the game plus 30 second increment.
Using this as an analogous situation one possibility in the situation you describe would be to deduct 10 minutes (or such time as you deem appropriate) from the offender's remaining time. Of course this runs into the problem of what to do if the offender has less than 10 minutes left or even if he has only 11 or 12 minutes left. In those situations this may be an unjust solution.
2) Another possible solution would be to take the two players to a separate room (so as not to disturb the other players) after first stopping the clocks and noting the times and position on the board. There you could set up the position on one board and play through the game on another board up to the end of the recording of the moves. Set the offending player's clock going and invite him to try and reconstruct the missing moves. He is invited to do this until he has 5 minutes remaining at which point he is no longer required to record the moves. It may be that this added pressure will spur him on to succeed.
A variation of this solution would be to just reset his clock to 5 minutes and resume with neither player recording.
Whichever solution you decide on at the time I would advise you to have a copy of the rules with you and to explain your decisions with reference to the rules so that the players can understand your reasoning process. This should help reduce arguments and misunderstandings.