BTW, I've read a article that said change Element.xml Synchronization to Synchronous, we can get BeforeProperties on List events, but I cannot find this reference now.
I'll make some test to confirm it. (Maybe many days or months later......)
List:
| List | BeforeProperties | AfterProperties | properties.ListItem | 
| ItemAdding | No value | New value | Null | 
| ItemAdded | No value | New value | New value | 
| ItemUpdating | No value | Changed value | Original value | 
| ItemUpdated | No value | Changed value | Changed value | 
| ItemDeleting | No value | No value | Original value | 
| ItemDeleted | No value | No value | Null | 
Library:
| Library | BeforeProperties | AfterProperties | properties.ListItem | 
| ItemAdding | No value | No value | Null | 
| ItemAdded | No value | No value | New value | 
| ItemUpdating | Original value | Changed value | Original value | 
| ItemUpdated | Original value | Changed value | Changed value | 
| ItemDeleting | No value | No value | Original value | 
| ItemDeleted | No value | No value | Null | 
Reference:
BeforeProperties and AfterProperties in Sharepoint Event Receivers
SPEventReceiverDefinition.Synchronization Property