My maximum focus time lies around 20 minutes. Usually I drift from the zone after that time period, but certain games are exceptions.
Cataclysm: Dark Days Ahead, for example, easily warps my timeline by tens of hours, without me noticing. Another instance is net surfing, which I assume many would agree with me.
It appears to me that those activities which keep me in the zone are the ones that provide positive feedback in the process. In the case of games, it can be the exploration of new areas, or the drive to tidy up the inventory (for me at least). In the case of web surfing, it might be the thirst for information and knowledge to satisfy curiosity.
There are some tasks that I would like to focus longer on, like working on a software project or an artwork. These do not provide enough feedback in time to keep me in the zone.
When modifying a code base, the tasks of studying existing code or debugging can quickly diminish my focus, because while important, these provide no intuitive returns in the sense of accomplishment. This is probably why an interactive programming environment such as a REPL can benefit a programmer immensely, among other reasons.
The same applies to drawing and painting. I am simply not skilled enough to impress myself with my art, but without putting more time in, the situation certainly would not turn better. Once in a while when I do like the drawing I did, the pleasure does not last after the next work, and now I have a barrier for myself to go over in order to move on.
Learning to be patient and discarding the fear of sunk cost are the next steps to improve myself.