As per my knowledge the speed of your 2 USARTS needs to be the same if you are using asynchronous mode. Asynchronous means that there isn’t a clock to tell when the data is valid. If you use synchronous mode the timing won’t be as important because there is a clock to tell the receiver that the data is valid.
If you just want to send single bits whenever you want you can use simple handshaking. Handshaking takes 2 extra lines. The sender puts the bit on a pin and sets a “data valid” line to tell the other controller that the bit is ready to be read. The receiver then reads the bit and sets a “data received” line to tell the sender that it received the bit correctly. This setup lets you transmit at whatever speed you like because the two sides will wait for each other using the “data valid” and “data received” lines.