mm: vmscan: If kswapd has been running too long, allow it to sleep

Under constant allocation pressure, kswapd can be in the situation where
sleeping_prematurely() will always return true even if kswapd has been
running a long time. Check if kswapd needs to be scheduled.

idea is taken here -
https://github.com/franciscofranco/flo/commit/95ff871a01e61b0850c84da470b3da75db0a742c