For example, set a flag when user inserts a space character after a non-space character. If he subsequently inserts a non space character, insert a single space into the buffer.

Did you try it out in an emacs buffer? Really, give it a shot. The current behavior is so counterintuitive as to make it useless. 

On Tue, 8 Dec 2020, 19:25 Eli Zaretskii, <eliz@gnu.org> wrote:
> From: David Klein <dklein0@gmail.com>
> Date: Tue, 8 Dec 2020 19:13:33 +0200
> Cc: 45116@debbugs.gnu.org
>
> If I typed in the text
>
> "The quick brown
>
> jumped
>
> over
> "
>
> and then went up to the end of the first line and type the characters
> '[space]' 'H' 'e' 'l' 'l' 'o'
>
> I get
>
> "The quick brownHello"
>
> instead of
>
> "The quick brown Hello"
>
> i.e. zero spaces instead of one. Only excess whitespace should be removed
> and the first space isn't excess.

What logic would you suggest to implement to decide that this space is
it not excess?