The current async streaming implementations use only Newtonsoft.Json under the hood, custom implementations of ITypeSerializer are ignored. We should support deserializing an asynchronous stream on custom serializers.
My proposed approach is to add IStreamingTypeDeserializer as a new interface and implement that interface on DefaultSerializer. We can then check for the presence of this interface in the streaming layers of QueryResult and ViewResult and use it when present. If not present, we fall back to synchronous deserialization and then emulate async behaviors.