Ok, so I'm a little confused about your question. You said in your previous message that options.height is being "changed by the framework." I took that to mean that you were reading the value from options and it wasn't what you originally stored in, like so:
options.height = 5;
chart.draw(data, options);
console.log(options.height); // I thought this would print out something other than 5.
However, it occurs to me now that you may have meant that Google Charts isn't setting the div to be your expected size, which may very well be the case. Especially, since you're giving the chart multiple signals of what its size should be. You're both setting options.width/height to something, and you're setting your div size to some number. Generally, the style attribute should have a unit attached to it, as just the number is ambiguous (i.e. you should be doing div.style.height = window.innerHeight + 'px').
Furthermore, since different browsers may have different display defaults (especially for different devices), they may either have different units or different default margins.
Another thing that may be occurring is that the chart may think that it doesn't have enough space to fully render, and so it would be clipped. You may try to fix this by setting the chartArea size such that it leaves enough room for the labels. In the absence of other information, charts attempt to lay themselves out to have some balance, and optimize for the presentation of data. This means that when the chart doesn't have a lot of room to render, it will truncate labels. Unfortunately, we don't have an option to say "never truncate" or "prioritize labels". You may file a feature request, but it is unlikely that we will be changing the implementation for the layout of these charts.