Would it not be possible to implement a system that applies a randomly-generated shuffle to each round before a tournament starts? I.e. match slots are placed into pre-determined pairs so that the shuffling has already been done, and therefore the matches don't need to start at the same time each round. The pairing pattern would also be unique for each tournament so that it wouldn't be decipherable. It's not perfect - the first and last games of each round would still invariably be susceptible to exploitation, but it would at least greatly attenuate the extent of scouting in early rounds. Perhaps the 10 minute match timer between rounds could be halted until there are at least 4 players waiting to enter their next game.
Additionally it wouldn't be as effective in the later rounds or in smaller brackets, but I'm not sure how you can effectively prevent scouting in these scenarios without anonymising every player or removing live spectating.
I threw together a visual demonstration in case I haven't explained it properly (I'm also not familiar with how coding works so this could end up being too much of a pain in the ass to create, but it's just an idea).
There are also other options available if remote spectating is implemented. The bracket could be hidden entirely until the tournament is finished in order to prevent live scouting, and you could just input a command to spectate specific players such as teammates or friends etc. instead of freely picking from an entire list of matches while the tournament is happening