Hi, sorry for taking a while to get back, I ended up using the UIButton component of the widget and handling the OnClick instead which worked out as a workaround and then I forgot to check back on this thread.
So what's really weird is that I just changed the code back to what it was (so, I am using the UIToggle component and the onChanged event), but now it all works fine! current is indeed null when I step through this code and the delegate is fired properly.
I am sorry, I am not sure what I was doing before to have caused the other behaviour, but I guess all's well that ends well?! I will let you know if I see it happen again!