## Bug description

From [a customer report](https://posthoghelp.zendesk.com/agent/tickets/653):

```
I'm accessing insight results through the API, and I’ve noticed that sometimes the result is null in the response.
When I go and view the insight in Posthog and tap “refresh” the result starts to return in the API response.
I’ve also noticed there is a “refreshing” boolean flag in the insight response.
How do I set the insight to either refresh periodically or on request so I always get a result through the API?
```

It seems like the insight returns null if it's not refreshed manually from the frontend.

## How to reproduce

1. Call an insight with GET | /api/projects/:project_id/insights/:id
2. Response is `null`
3. Refresh the insight from the frontend
4. Response is populated

## Environment

- [ ] PostHog Cloud
- [ ] self-hosted PostHog, version/commit: please provide

## Additional context


posthog/api/insight.py
if not insight.filters:
            return None
        dashboard = self.context.get("dashboard", None)
        if should_refresh(self.context["request"]):
            return synchronously_update_insight_cache(insight, dashboard)
        cache_key = insight.filters_hash
        if dashboard is not None:
            dashboard_tile = self.dashboard_tile_from_context(insight, dashboard)
            if dashboard_tile is not None:
                cache_key = dashboard_tile.filters_hash
                if cache_key is None:
                    
                    
                    generated_filters_hash = generate_insight_cache_key(insight, dashboard)
                    dashboard_tile.filters_hash = generated_filters_hash
                    dashboard_tile.save(update_fields=["filters_hash"])
                    cache_key = generated_filters_hash
        self.context.update({"filters_hash": cache_key})
        result = get_safe_cache(cache_key)
        cache_context = {"type": insight.type, "from_dashboard": "true" if dashboard else "false"}
        if not result or result.get("task_id", None):
            statsd.incr("posthog_cloud_insight_cache_miss", tags=cache_context)
            return None
        else:
            statsd.incr("posthog_cloud_insight_cache_hit", tags=cache_context)
        
        return result.get("result")
    def get_timezone(self, insight: Insight):