Brian, this sounds a lot harder than it has to be. If you are communicating at a known baud rate,the UARTs at either end take care of everything. The only thing the host(master) has to manage is changing the port direction.
For example, the host transmits a request to the slave,and then turns the port to receive. Once the message has been received from the slave, the host then turns the port back to transmit. The slave only gets control of the wire when commanded by the host.