I can't help you with that, I am not amongst those privileged ones who can skip daily tasks... I always wonder, though, what triggers that. I guess, due to Innos "transparency" policy lately, I will stay not enlightened...
This takes me back to my BASIC days where I had to program an arithmetic sheet where no two problems should be the same and no sheet should be the same (so kids won't copy off one another if tested). Careful thinking, planning, and a series of IF..THEN statements is what got me the glittering prize for a project that no kid programmer had done (others were doing graphics and animation).
For them (Inno) to have certain quests that are not enabled to be skipped tells a cross into the IF..THEN statements (or whatever terms used for their current programming) that has IF..THEN of one task crossing over into the IF..THEN of one or more without an end break between them. That's my theory.
If it was me to program the dailies, I would have made a task list in some sort of database to be called on along with progress. Then I would see if a daily task would be 3, 4, or 5 tasks at random for that day. I will program proper IF..THEN type statements to generate a task list within such a section by calling the appropriate number of tasks as A1, A2, A3 for a 3 task daily, B1, B2, B3, B4 for a 4 task daily, C1, C2, C3, C4, C5 for a 5 task daily (the different sheets process) as well as R1, R2, R3, R4, R5 is set for the buttons (later in this) that will be clicked on to refresh (or skip) the task (where the latter two shown or hidden from view as appropriate).
Each task would be generated at random and checked (using a 3 task daily as an example) so that A1 does not equal A2 or A3, A2 does not A1 or A3, and A3 does not equal A1 or A2. If any equals the other then it should generate a new task to replace the one that is duplicate until that condition is met.
A button is programed next to the task so it gives the user to "skip" the task on the appropriate task line (R1 for the first task, R2 for the second task, and so forth). This will call the tasks for the number (such as A1 for the 3 task daily) a task is on. It will regenerate a new task that checks against others to ensure it is not duplicate. Also, it would check against to see if any previous task skipped won't appear when skipping.
Only then when a button cannot be skipped is when the person clicked enough to reach to the end of the list that the final task of that set will still be in view and the other buttons will disappear. An example can be where Inno programmed 30 tasks, and that player skipped (free and diamond use) one task to get to the end of the list. You would think that you have 30 clicks to go about it, but you don't... why? Because, it's 30 max tasks that are programmed into the routine, 3 to 5 are used (so if you have a 4 or 5 task day it's shorter by 1 or 2 more) for the initial set up. So basically, you got 27 more tasks to bring out into the open (on a 3 task daily) before the buttons disappear and you're maxed out.
Oh, I am just a BASIC person. I fell out of the programming loop decades ago when I had my calling for being a network and telephone cable technician that gets me out in the field (no cube prison for this gent).