После долгих экспериментов я определил, что Android WebView не будет подчиняться настройке 'viewport', если фактическая страница имеет ширину, превышающую настройку viewport.
Например, я устанавливал область просмотра на 500 пикселей, но на моей странице был элемент, обеспечивающий ширину 960 пикселей. Область просмотра не выполнялась, потому что WebView отказывался скрывать этот дополнительный контент.
Это кажется очевидным, когда я набираю текст, но я, должно быть, потратил несколько дней на решение этой проблемы.