Detecting Sleeper Agents in Large Language Models via Semantic Drift Analysis