This behavior is subtly different from the prior in another way -- if `handlePrimaryContextualiztion()` returns null, we will now call `withvalueDeserializer(null)`. I think the contract of `handlePrimaryContextualiztion()` does not expect implementations to return null, however, so this may be fine. If not, can add an additional final check.