Dynamic task-based intermittent execution for energy-harvesting devices