This can be seen in:
var t = new Action(() => Thread.Sleep(5000));
t.BeginInvoke(t.EndInvoke, null);
This throws a NotSupportedException. This can be re-worked using Tasks and async, but I can't go around changing the .NET API interface, so this is put on hold for the time being.