Thank you, Derek, but I'm still flummoxed. I added this new script tag to web2py_ajax.html:
<script type="text/javascript">console.log('loaded ' + Date.now())</script>
But I'm getting this message even when I use LOAD(). So I'm trying to understand whether I am placing this code in the wrong location or what, because I think it shouldn't be redrawing the page. The XHR record output seems to confirm this.
FWIW the actions are called this way from menu.py:
response.menu = [
        ('Demo', False, '', [
        (T('New task'), False, URL('default', 'new')),
        (T('Show all tasks'), False, URL('default', 'all')),
        ]),
]