projects.test.ts carried a file-local deferred() that only exposed
resolve, so the missing-RPC test hand-rolled its own captured-reject
promise. Import the shared @/test/deferred helper (resolve + reject)
instead, drop the duplicate, and settle the stale-owner projects.create
rejection through pendingCreate.reject. No behaviour change; the seven
existing deferred callers work unchanged.