Wenn man sich das Tutorial genau anschaut, wird current_task dort mit -1 initialisiert. Deswegen gibt es im Scheduler auch das if (current_task >= 0).
Was mit current_task == 1 am Anfang passiert ist vermutlich, dass beim ersten Wechsel in einen Task der Taskzustand vom B-Task (Index 1 == current_task) mit dem bisherigen Kernelzustand überschrieben wird - und der Kernel hängt ja in dieser Endlosschleife in start.S und beim ersten Timerinterrupt geht das Multitasking los. Weil eine Endlosschleife nicht so richtig sichtbar ist, siehst du dann nur As. Was vielleicht sichtbar sein könnte, ist, dass der A-Task immer für eine Weile unterbrochen wird, damit der Kernel seine Endlosschleife abarbeiten kann, d.h. die As müssten "schubweise" kommen.