Hi Jim,
I would say that using `slime-eval' with a string won't work: you're asking CL to evaluate a string, which it complies with happily, but won't actually call the function. That's why it returns immediately (shound't return t, though).
The solution is to stick with passing an actual symbolic expression, and, to fix your symbol problem, pass the result of `slime-symbol-at-point' as a quoted string ("%S" I believe). Then, in the CL side, pass it to the function
SWANK:FIND-DEFINITIONS-FIND-SYMBOL-OR-PACKAGE
which should "do the right thing" and return the symbol interned in the correct package be it the qualifier package, or the one implicit in `in-package`.
Regarding problem 4, you need a system that lets you create contribs that are fully independent of SLIME which SLIME doesn't provide afaik, but my fork of it, SLY, does. See http://github.com/capitaomorte/sly if you're interested.
I'm interested in this contrib, can you share the code you have for the CL side as well?
João