Thanks for providing your code and data. It really helps us to find out what Google Charts users are doing.
Since you are now generating the chart asynchronously, you need to wait for the 'ready' event to find out when the chart is done drawing.
It appears we are generating tooltip text even if you have turned off interactivity, which we should fix. It looks like you should be able to disable tooltips further if you add this to your options:
tooltip: { trigger: 'none' }
I get about a 25% improvement from that. Another chunk of time is spent formatting the domain data anyway, even without tooltips. We can made this a bit faster, reducing the formatting to half a second with this:
var formatter = new google.visualization.NumberFormat({pattern: ''});
formatter.format(data, 0);
But you could eliminate this if you just generate your data in this form for each cell value: {v: value, f: ''}
Another larger chunk of time, about half the remaining time, is consumed generating the invisible accessibility table. We don't have a way of disabling this table because it is for the benefit of the user. However, we will provide an option to disable this feature, defaulting to false. Ideally, we need to find a way to detect whether the user would prefer the accessibility table instead of the generated chart. The above hack to specify the formatted representation of data values as empty strings will, of course, conflict with the generation of the accessibility table, so we would prefer to avoid that.
These are the highest priority issues regarding performance that we need to address. After we take care of these, there will certainly be other issues.
I've attached the modified SkewChart.html code.