Optimizing LLM Code Suggestions: Feedback-Driven Timing with Lightweight State Bounds