Thank you for the great library. It would have a lot better if there was no use of events handler. Async/await is a lot better (especially in Forms).
Interface could be:
Task<IEnumerable<InAppProduct>> QueryInventoryAsync(params string[] productsIds) // let the user specify which products he wants to query
Task<PurchaseResult> PurchaseProductAsync(string productId, string payLoad = null) // let the user specify a payload
/// etc...