El botón de eliminar leía la dirección de destino del formulario con form.action en JavaScript, pero el formulario también tiene un campo oculto llamado action (con el valor action=delete para el servidor), y el nombre de un campo oculta una propiedad del mismo nombre del elemento <form>. Así, form.action devolvía ese campo oculto en vez de la dirección, y la petición de eliminar iba a una dirección sin sentido en vez de al servidor: nunca llegaba a la app, por eso tampoco aparecía nada en los registros del servidor mientras pasaba.
Ahora el botón lee la dirección directamente del atributo action del formulario en vez de la propiedad oculta, así que las peticiones de eliminar llegan a donde deben.