Tbh I never used tweens, I use animatedsprite2d - you don't have to use animation there, you can just refer to each sprite by number. And e.g. in my current Minesweeper game, I just set the sprite frame number to the logic number and it's quite convenient to organize.
But yep, awaits are hell :D I ended up doing state machine to avoid races and tons of awaits (there are still a lot of them though)
But I'm also new to all this, like 2-3 months in godot/game-dev, so I'm not sure my approaches are good as well, just sharing how I approach these issues