Remote should always be in RX, and only TX when requested by BASE, or on startup to announce it is there now. If remote does not hear from BASE in xx number of seconds, do some code to shut down or re-initialize, or send "hello" message every once in a while, etc. (or ignore it)
That way, BASE always controls the communications and you have no need for time base. Let BASE control timing. If BASE does not hear from REMOTE, decide what you want it to do (restart, try again, ignore unless remote sends a init message, etc.)
BASE should only be actively sending to REMOTE if it knows it is there (initial handshake). REMOTE always sends an initialization message when turned on, or has not heard from BASE after many seconds or minutes. Once both units know the other is online, only let the BASE control messaging. This avoids collisions in transmissions. Both BASE and REMOTE have to have some form of timeout on expected communications to trigger reset or timeout procedure.