Event is usually not called on first connection. Usually after disconnecting and connecting, CorsairSessionStateChanged event is triggered
CorsairUnsubscribeForEvents has no effect. Each reconnection adds another handle to CorsairEventCallback. Disconnections don't remove them either. So device connection events are called as many as reconnections.
Happens consistently, all the time. iCUE SDK v4.0.48
C# wrapper that handles the sdk: https://github.com/Aytackydln/RGB.NET/blob/1d2605748297b2a2b9c6acaba7aa9c055a945e3d/RGB.NET.Devices.Corsair/Native/_CUESDK.cs