Yep, I'd access like this:
public void HandleEvent(OrderPlacedEvent eventMessage)
var paymentInfo = _httpContextAccessor.HttpContext.Session.Get<ProcessPaymentRequest>("OrderPaymentInfo");
In the current version, only properties that are assigned by the payment processor are present as the ppr is serialized to json using SessionExtensions. Formerly, as the ppr was updated, any updated properties (especially CustomValues) persisted, and I'd leverage that to pass data around. I'd prefer to implement an IConsumer wherever possible.
I know there are other workarounds, perhaps this isn't a bug, just different behavior.
Most importantly, overall we love nopCommerce 4.1 - thank you!