I found that <li><%= button_to 'Logout', logout_path, method: :delete %></li>
was calling the non-existent get route instead of the delete route.
Changing to this correctly calls the delete route:
<li><%= link_to 'Logout', logout_path, data: { turbo_method: :delete } %></li>