Two fixes:
1. db_layer.update_task_status: map invalid failure_stage values (e.g.
'process' from Edge) to 'callback' before DB write, preventing
MariaDB ENUM DataError (1265 "Data truncated")
2. dispatcher._poll_once: wrap each task dispatch in try/except so one
task's failure doesn't skip remaining tasks in the batch
Root cause: Edge returns failure_stage='process' but DB ENUM only allows
download/extract/vlm_visual/vlm_fusion/callback. The DataError crashed
_poll_once(), causing all subsequent PENDING tasks to be skipped.