When state is Disconnecting, OnDataAvailable (on the IO thread) should
buffer data. Otherwise it dispatches DoSendData to the actor thread,
which supposedly sends data to the StreamFilterChild.
But because the Disconnecting state is set from the actor, it is
possible for a race condition to happen: If the Disconnecting state is
entered between the dispatch and the actual running of DoSendData(),
then before this patch the data would be dropped.
This patch fixes the issue by putting the data back at the front of the
queue, where it logically should have been.
Differential Revision: https://phabricator.services.mozilla.com/D246084