Chris,
Some subVIs were missing from your .llb file so I may have overlooked something.
What I would try is to put the serial read and write into separate, parallel loops. Then each could operate as required without waiting or interferring with the other. Also, read only the number of bytes actually present, not a fixed 40. If only 35 are present the read VI may wait for the other 5 to show up.
Pass the data from the read and write loops to/from another parallel loop which does the processing, such as framing and any data format translation which may be required. What I am recommending is essentially a state machine architecture.
Lynn