If your online tool is real-time and you know lag isn't a problem, you can use a clause in the game itself to resolve the problem. A player who fails to reveal their die on command after having the chance to choose it automatically loses initiative (p. 74). In chat, you can do like so:
Seneschal: A fight! Okay, moving to combat rounds. Ready?
Player 1: Yes!
Player 2: Ready.
Okay, enter your initiative die and send when I say "throw".
Seneschal waits a few seconds
GM: Throw!
P2: Red
P1: Red
Ooh, interesting. Okay, so…
In a low-latency chat, players 1 and 2 should post almost simultaneously if they're playing honestly and paying attention. A player who hesitates, either because they took too long to choose, didn't pay attention, or they waited until they saw the other fighter's choice, automatically loses initiative and may only choose defensive maneuvers for the first exchange, as per the Surprise and Hesitation rules (p. 75). Of course this is up to the Seneschal's judgement, but that's true even sitting around a physical table.
One way this could be defeated is if your communication tool allows text macros, since a player could set up a macro for each response and try to be as quick as possible after the other player sent their choice, but on platforms that don't have such macros, or with players you trust, this won't be an issue. Besides, it would be a detectable pattern: every time they'd go second, and every time they'd send the best matching response.