Is "The package Events can easily explode" a legitimate concern? How many type of events an application could source? If it is an hypothetical concern then an events package is a suitable solution that properly designed could accommodate the requirements otherwise redesign the events based on the data type they have to transfer between source and destination (e.g. numerical event transferring types int, float and so on, string event transportingtransferring text, collection event transportingtransferring collection data structures), add a new package for an implementation supporting subscribers and have the Sales and Billing modules posting events differently labeled. There are already available implementations supporting subscribers they are implementations of event bus design pattern.
Sales <-> Event bus <-> Billing
Use with care since same way "the package Events could easily explode" same could happen to any labelling system.