This code hangs:
let stream1 = FromStream::with_ordering(pending::<Message>(), |m| m.serial);
let stream2 = FromStream::with_ordering(
futures_util::stream::once(Box::pin(async { Message { serial: 1 } })),
|m| m.serial,
);
let mut joined = join(stream1, stream2);
let msg = joined.next().await.unwrap();
assert_eq!(msg.serial, 1);