I haven’t ever had luck with consistently preventing something like that. It may be a bit dirty, but if the questions are usually of the sameish length can you force a page-break after every X questions?
<style type="text/css">
.pageBreak{
page-break-before: always;
}
</style>
<question>...</question><br class="pageBreak" />
<question>...</question>
(Or apply that class to the question or whatever you want)
You can try using the page-break-inside property, but I haven’t seen it be consistent as browser support for it is a mess right now:
question {
page-break-inside:avoid;
}