Simple PWM regulator, current measurement without high-side current sensing
Looks like it should work ok... As you point out, the Rds(on) is only characterized down to 4V Vgs, so if you have a lot of current your Rds(on) will start to rise a bit.

There is a nice low impedance to the ADC input, but I would add a small cap close to the input to even out the sample-and-hold current spikes that would develop a small voltage drop on the PCB trace (or wire).

Filtering in software shouldn't be a problem as long as you're sampling fast enough to avoid aliasing issues, which is sounds like you're doing.

You might want to add temperature sensing to the battery, as a form of emergency cutoff to prevent damage. Some nicer chargers do that apparently.

As an engineer I work with says, "Try it and see."