Something I don't see discussed much (composerorganist does touch on it), and which takes out some of the arbitrariness, is the rhythmic hierarchy. With the exception of appoggiaturas and sustained notes, nonchordal notes are much more likely to be unaccented rather than accented. In 4/4, the 1st and 3rd beats are strongest, followed by the 2nd and 4th beats, followed by 8th notes that fall in between beats, followed by 16th notes that fall in between those 8th notes.
It's not so much a matter of "right or wrong", so much as a matter of scale -- how detailed do you want to look? You could analyze every 16th note in a run as a separate chord, but that gets tedious real fast. Nonchord tones are basically just a lazy excuse to not have to harmonically analyze every single note. For the most part, the accented notes tend to be much more important. A list of different types of nonchord tones (passing tones, neighbor notes, appoggiaturas, etc) is also really helpful here, because you can look at it and find similar patterns. It's basically a catalog of melodic patterns that musicians over the years have found helpful to ignore.
Let's look at the second half of bar three at various levels:
Technically, since this is only two parts, there's no actual chords at all, just a series of intervals. In early contrapuntal music this is largely the way would have been thought of. So in the second half of bar three you have: 10th, 3rd, 2nd, 4th, 6th. You *could* try to put one or more chords with each of these, but first...
Let's "zoom out" one level, away from the 16th notes. We see that there is an unaccented 16th note: an F# between two G's. This note is unaccented and creates a dissonance (aug. 2nd) with the E-flat, so we can safely call it a nonchord tone. Looking at a chart of nonharmonic tones, we see that this is a classic example of something called a "neighbor note". So let's remove the F#.
Now we have a series of 8th notes C-E-flat, E-flat-G, D-G, C-A. You could analyze each of those as being a chord. I'll assume you're OK with assigning the first two to both be a C-minor chord (instead of, say, an A-flat followed by an E-flat). If you're not OK with that, then think of it as an application of Occam's Razor - it's the simplest chord (tonic) that fits the most notes (all of them). In this analysis, beat four would have a G minor chord followed by perhaps an A dim or an F# dim chord.
But let's zoom out above the level 8th notes. The C-minor is clearly accented here, since it comes on the stronger beat, and lasts twice as long as the other two "chords". Those other two each last half as long, and are relatively unaccented (and we can't even tell what the root for one of them is!), making them seem more transitory. Now, if we look from a purely melodic perspective, the alto line goes C E-flat D C, which outlines an interval of a third (ignoring the fact that the C is in a different octave). In this context, the D looks just like a "passing tone" to get back to C. The soprano line goes E-flat G G A (then leaps downward). This looks just like an "escape tone" (aka an incomplete neighbor, as composerorganist calls it).
Since, at this level, these last two chords are short, unaccented, and created by nonchord tones, they aren't as important. So at this higher level, we see that this entire half of the measure is just a C minor chord with decorations. Hope that helps!
TLDR: Zoom out using rhythmic hierachy, and Occam's Razor.