D282 - dlsym gets its positive: a known symbol through a valid handle

060-module/dlsym-rejects-bad-handle proved argument validation and nothing else - by principle 7 that is the weaker half, because an implementation that fails everything passes it. Added 060-module/dlsym-resolves-known-symbol: open libScePad, resolve scePadOpen through the returned handle, and require rc == 0 and obs_address_is_callable(address). Non-null is not enough - a placeholder is non-null too, and the callable test is what separates "answered an address" from "answered a usable one".

No surface or import change: the check reuses sceKernelDlsym, already declared and already imported by its negative sibling, so the five-step admission list collapses to steps 4-5 (provenance OBS_FROM_ASSUMED, run under make host). It skips - never fails - where the platform resolves nothing by name or cannot load libScePad, so a skip reads as "not asked". The host stub takes the skip (no run-time resolution there); a hardware run is where it earns its keep, naming the address the console binds so orbistoun's dlsym success path can be diffed value-exact, the same way the rejection path already is.

The sysmodule counterpart was left out on purpose: a positive sceSysmoduleIsLoaded needs a real SCE_SYSMODULE_* id, and there is no citable one in platform.h (the grep is empty). Inventing an id to make a positive check compile is exactly what principle 2 forbids - a wrong constant makes the call succeed and answer about the wrong module silently. The negative (sysmoduleIsLoaded(0) → unloaded) stays the honest half until an id arrives from a nameable source.

Verified: make host builds clean (-Werror) and runs; the new check emits its try/res pair and takes the honest skip on the host. The full make check could not run this session - the sibling selfish checkout is mid-rescaffold (main has no commits yet, an empty Cargo.toml staged), and the Rust tool gate path-depends on it through prosperous. That block is entirely in the sibling and untouched by this change; the C addition is complete and host-verified.