Concurrent tool callbacks in eino_adk_run_loop and the MCP monitor
goroutine call Bind/ExecutionID on the same binder. The previous
implementation used a plain map[string]string, causing intermittent
'concurrent map read and map write' panics — the same race that
TestMCPExecutionBinder_ConcurrentBind was added to guard against.
Wrap the map with sync.RWMutex (write lock in Bind, read lock in
ExecutionID). The TrimSpace of toolCallID/executionID stays outside
the critical section to keep it minimal.
go vet ./internal/multiagent/... ✓
go test -race ./internal/multiagent/... -run MCPExecutionBinder ✓