Make the sleep job run as long as necessary, as opposed to the other jobs, which work based on a pre-defined overall progress
Most jobs (currently) work towards a pre-defined progress, for example the small, medium and large food options. Things are different with the sleep job, which is supposed to go on for however long it takes to fully recharge (or the job gets aborted of course).
This required a new Python function or two, nothing major, but a nice effect nevertheless. I did some test runs to find a more or less reasonable value that seems semi-realistic. So far, so good!