You could probably watch dmesg and lock instantly. Probably along those lines:
while IFS= read -r line; do
if printf '%s\n' "$line" | grep [something here]; then
# lock screen
elif printf '%s\n' "$line" | grep [something else here]; then
# unlock screen
fi
done <<< "$(dmesg -w)"