fix bug: update neighbour + update task validity to avoid potential deadlock
- update neighbour even when a task is sent immediately after return
- update task validity when worker is requesting