Deprecation stream fixes 3 0

This is like #1452 but for 3.0.  Fixes #1451.

Note the alternate implementation.  I'm not sure if I will backport it to 2.99 or not...the main benefit IMO of this alternate approach is maintenance but we're not going to be doing much maintenance in 2.99 in the future (hopefully, at least).

/cc @JonRowe @cupakromer