I don't understand this phrasing. If the set of types is known at compile time, there should be no need for variadic generics.
Instead of phrasing your question in terms of implementation, could you share the desired usage of the library that demonstrates a scenario in which you need variadic generics?
Is your requirement that the type parameter of the message/event type should itself be an arbitrary generic type, with arbitrarily many type parameters? That is not variadics territory, it's more like higher-kinded types, and in itself, it doesn't seem useful, because messages will need to be instantiated with a concrete type anyway in order to stand a chance of being handled specifically. Instead of trying to make the type parameter itself HKT-generic, you could try making it just an ordinary generic and adding very minimal trait bounds so that it is usable with a broad set of types.