The message you got come from this code snippet in /usr/libexec/slackpkg-core-functions.h:
# Checking if another instance of slackpkg is running
if [ "$(ls /var/lock/slackpkg.* 2>/dev/null)" ] && \
[ "$CMD" != "search" ] && \
[ "$CMD" != "help" ] && \
[ "$CMD" != "file-search" ]; then
echo -e "\
\nAnother instance of slackpkg is running. If this is not correct, you can\n\
remove /var/lock/slackpkg.* files and run slackpkg again.\n"
ls /var/lock/slackpkg.* &>/dev/null || \
So it's triggered by the presence of a lock file, not a running process.
1) I don't thinks so.
2) I don't think so. However maybe not a "clean" way, I'd just remove the lock file (see above) and restart slackpkg, if the cleanup function in aforementioned script don't do that itself.