That is not actually a "data race". It is a race condition for sure, but a data race is a very specific thing - where two threads access the same location at the same time and at least one is a write.
That could be unsafe in Rust because it might lead to reading "impossible values" like an enum that isn't equal to any of its variants. Therefore safe Rust must prevent it or there's a soundness hole.
For bare metal definitely get a microcontroller and do some fun electronics project.
Easiest to get into is Arduino, but don't stick with that because its only redeeming feature is that it's easy to get into. The IDE sucks, the build system sucks, the APIs really suck, and the code quality is very low (probably because it's easy to get into so you get a lot of inexperienced people doing stuff).
After Arduino I would recommend either going to the Nordic nRF5x series - you can do some cool Bluetooth stuff, or even make you your own radio protocol since the radio peripheral is fully documented... Or ESP32 with Rust and Embassy is probably the most modern and slick way to do microcontrollers.
It does require learning Rust but Rust is really really good so you should do that anyway.
There are some extremely good videos on YouTube about that: https://youtube.com/@therustybits
I would probably still start with Arduino though since you know C. Just don't stay there for too long.