I agree that the sneak attack function is wonky.

The fact that it can only be done by pressing the sneak attack button means that you lose the opportunity to use it both as one of your bonus action attacks (assuming you are TWF) or during an opportunity attack (I haven't tested whether it works for opportunity attacks, but I'm assuming the answer is no - can anyone confirm?).

The fix is quite simple for coding actually. If an attack hits and is a successful sneak attack (fulfills all the conditions for sneak attacks), set a variable to yes to show that it was used. For each attack during that character makes, check the variable. If it is set to yes, do normal damage. If it is set to no, check the normal variables to determine whether it qualifies for sneak attack and do damage accordingly. At the end of that character's turn, reset the variable to no, so that any opportunity attacks that qualify for sneak attack can do the extra damage. Then at the beginning of that character's turn, reset the variable to no again (just in case there was a successful opportunity sneak attack that set the variable to yes).

I'm guessing sneak attack is its own call function, so adding one more variable and a few extra lines of code to that shouldn't be too much work.

As for the notion that you won't want to use sneak attack for the first target, but might for another (example of a reason why: the target you are closest to only has a few HP left. You need to kill it so it dies and/or doesn't get an opportunity attack, but you want to sneak attack the healthier target): It's quite simple. Have a sneak attack toggle button. If the toggle is set for on, call the newly improved sneak attack function every attack. Otherwise, don't.