I think the only way for coop to work would be for each client to treat itself as the authority on whether or not it gets hit and whether or not its own shots hit. The other player simply receiving updates on their partner's location. The "host" would be responsible for tracking enemy HP, though a client is perfectly within its rights to destroy an enemy it perceives as destroyed and not spawning additional shots. There will be some slight desynch between the two clients as to which shots actually exist, but if each client assumes that it always sees the shots that are capable of hurting its player, then it's fine: the shots it can't see don't count and it doesn't matter if Player A sees Player B take a hit: sure that destroys the shot on Player A's side, but Player B's client says, "Everything's fine! I still have 12 hp!" and A's client is like "oh, ok."
It would be highly vulnerable to cheating, but this isn't a game that really requires strong anti-cheat security. Might be some possible exploit nonsense with being able to manipulate deadzones (B's client dodges a shot that A's saw as colliding, creating a safe opening) but it'll be super tricky to actually utilize that much.
Anyway, it'd be equivalent to solving the latency issue by covering your eyes and pretending its not there. Which, ordinarily would be a massive problem. But if the only thing that the host cares about is the damage reporting, it might work.