A preemitive task scedular would take too much ram (and time) due to it's complexity.
Nonsense!
A pre-emptitive task scheduler can be done in well under 100 bytes of code and a table, size of which depends on max number of tasks (Or maybe you just consider that too big / complex :-) )
And how do I know?
Becouse I've done it!
Of course it was very simple (didn't have priorities, events or anything else, but it kinda proved, that it is possible)
Maybe I'll finish it some day :-)
And I don't quite agree with pre-emptitive multitasking making things more complex than co-operative... With pre-emptitive you don't have to even think about giving time for other tasks, as the OS will switch to the next task after pre-set time.