1) Ah good point. So I think what's happening is that the pick nearest is only selecting one single enemy (which is good), but then spawning a hit sensor that is overlapping both enemies (which is bad). Download V2 Capx
What this is now doing is spawning a hit sensor, but we are recording the UID (a unique ID that Construct assigns to every object) to it's instance variable. You can then use the "Pick by unique ID" to ensure that, when a sensor is overlapping the enemy, it only picks the one with the ID that we assigned to it.
2) I noticed that a few times myself. The reason it's happening is because it's saying only if the hit sensor is overlapping the enemy, then apply damage and
destroy it. If the enemy is destroyed before this event is run (in the case of two players attacking one enemy), the second hit sensor is never destroyed because the enemy is already dead. To get around this I think you can add a condition at line 29 that when an enemy dies, any hit sensors that are overlapping it are also destroyed.
Combined with the first note above, this screenshot is a little out of date (since we are now only destroying hit sensors assigned to the enemy), but you get the idea.
Hope this helps. You've done an impressive amount of work so far already, it's looking to be a really cool game