private async Task<ulong> NotifyAsync(string name, CancellationToken ct, params object[] args) {
Debug.Assert(name.StartsWithOrdinal("!"));
TaskUtilities.AssertIsOnBackgroundThread();
var message = CreateMessage(name, 0, new JArray(args));
await SendAsync(message, ct);
return message.Id;
}