Although I’d still like to know why you can’t dynamically change the height of a widget, I did solve my problem.
Since the height of the widget depends on the height of the browser, I used some simple jQuery to insert the widget after the page has loaded:
$(document).ready(function(){
var twitHeight = (window.innerHeight - $("footer").height() - $("header").height());
console.debug(twitHeight);
// insert twitter widget
$('<a class="twitter-timeline" height="'+twitHeight+'" href="https://twitter.com/cohenadair" data-widget-id="353326092804833282">Tweets by @cohenadair</a>').insertAfter("#twitter-loc");
!function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0], p=/^http:/.test(d.location)?'http':'https';
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = p+"://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
});