You don't need the shenanigans in the first post, your second Initialize on the same instance is closing the output stream. Try opening one AsycnStreams instance for output only just like your second Initialize, Initialize will accept Null for the input stream. You should then be able to write whenever you want. Then create another different instance for input only when you want status, Initialize it when you want status and Close it afterwards. You should be able to repeat this on the same instance when you require status.
By the way I'm assuming that what you are receiving repeatedly is valid status data. If so then I am astonished that there appears to be no way to control the frequency as it seems totally unusable in a real world situation.