HubProxy.invoke now (correctly) returns the promise