Faits:
A. Par prononcé du 25 mars 2008, le Préfet de Lausanne a condamné X._ à 500 fr. d'amende pour infraction simple à la LCR (violation des art. 31 al. 2 et 37 al. 2 LCR). Selon le rapport de la gendarmerie lausannoise, le 2 janvier 2008 au matin, l'intéressé s'était trouvé endormi au volant de son automobile à un carrefour, alors que la signalisation lumineuse était passée au vert. Après avoir affirmé qu'il avait été victime d'un malaise, X._ avait déclaré qu'il s'était endormi en raison d'une importante fatigue.
Par décision du 14 avril 2008, le Service des automobiles et de la navigation du canton de Vaud (SAN) a retiré à X._ son permis de conduire pour six mois en application de l'art. 16c al. 1 let. c et al. 2 let. b LCR, retenant que l'intéressé avait conduit en état de fatigue ou de surmenage et qu'il avait déjà fait l'objet d'un retrait de permis d'un mois en 2006.
B. Par arrêt du 3 novembre 2008, la Cour de droit administratif et public du Tribunal cantonal vaudois (CDAP) a confirmé cette décision. Ne s'estimant pas liée par la qualification juridique retenue au pénal (le Préfet ayant appliqué les dispositions relatives aux conducteurs pris de boissons et au stationnement gênant), la CDAP a retenu que le fait de s'assoupir au volant constituait en principe une faute grave. L'intéressé avait connu des signes avant-coureurs de fatigue, et avait effectué une sieste d'une demi-heure dans son véhicule peu avant les faits. Il se prétendait victime d'un malaise subit, dû à une légère hypothermie durant sa sieste suivie du réchauffement de l'habitacle, mais ces affirmations n'étaient pas vraisemblables.
C. X._ forme un recours en matière de droit public. Il demande l'annulation de l'arrêt cantonal et de la décision du SAN et l'exemption de toute mesure, subsidiairement un retrait de permis d'un mois, plus subsidiairement le renvoi de la cause à la CDAP pour nouvelle décision au sens des considérants, éventuellement après nouvelle expertise. Il demande l'effet suspensif, qui a été accordé par ordonnance du 19 janvier 2009.
La CDAP, le SAN et l'Office fédéral des routes se réfèrent à l'arrêt attaqué.

Considérant en droit:
1. La voie du recours en matière de droit public, au sens des art. 82 ss LTF, est ouverte contre une décision de dernière instance cantonale au sujet d'une mesure administrative de retrait du permis de conduire. Le recourant a qualité pour agir (art. 89 al. 1 LTF).
2. Le recourant reproche à la cour cantonale de s'être écartée de la qualification juridique des faits retenue par l'autorité pénale, sans expliquer - en violation du droit d'être entendu - pour quelle raison l'application de l'art. 37 al. 2 LCR devait être exclue.
2.1 Conformément au droit d'être entendu, l'autorité doit indiquer dans son prononcé les motifs qui la conduisent à sa décision (<ref-ruling> consid 2c p. 34; <ref-ruling> consid. 2b p. 109). Elle n'est pas tenue de discuter de manière détaillée tous les arguments soulevés par les parties, ni de statuer séparément sur chacune des conclusions qui lui sont présentées. Elle peut se limiter à l'examen des questions décisives pour l'issue du litige; il suffit que le justiciable puisse apprécier correctement la portée de la décision et l'attaquer à bon escient (<ref-ruling> consid. 4.1 p. 88; <ref-ruling> consid. 4.3 p. 540; <ref-ruling> consid. 2b, et les arrêts cités).
2.2 L'arrêt attaqué évoque la qualification juridique retenue dans le prononcé préfectoral, soit une violation de l'interdiction de s'arrêter aux endroits gênants ou dangereux (art. 37 al. 2 LCR). Il explique ensuite clairement les raisons pour lesquelles la cour cantonale a retenu une infraction à l'art. 31 al. 2 LCR (conduite en état d'incapacité), et les motifs justifiant une application de l'art. 16c al. 1 et 2 LCR. L'arrêt attaqué est parfaitement clair à ce propos, et le recourant est en mesure de contester la qualification juridique retenue, de sorte que son droit d'être entendu est respecté.
3. Le recourant prétend ensuite que le juge administratif se serait arbitrairement écarté de l'état de fait retenu au pénal, soit le constat que le véhicule du recourant se tenait à l'arrêt à un carrefour. Dans un grief distinct, lui aussi relatif à l'établissement des faits, le recourant se plaint d'arbitraire. Dans son recours cantonal, il expliquait que son malaise, apparu subitement, serait dû à une conjonction de plusieurs facteurs, soit un début de grippe (confirmé par un certificat médical), le travail effectué de nuit et les effets de l'augmentation rapide de la température de l'habitacle de la voiture (hypovolémie). L'arrêt attaqué aurait écarté cette hypothèse sans même ordonner une expertise, alors que la cour cantonale ne disposait pas de connaissances médicales particulières. Il en résulterait également une violation du droit d'être entendu. Le recourant critique les motifs pour lesquels l'hypothèse d'un malaise soudain a été écartée. Il conteste également être resté dans la circulation malgré l'apparition d'un malaise, et se prévaut de la présomption d'innocence.
3.1 Selon les principes rappelés par la cour cantonale, les autorités administratives appelées à prononcer un retrait du permis de conduire ne peuvent en principe pas s'écarter des constatations de fait d'un jugement pénal entré en force (<ref-ruling> consid. 1 p. 204; <ref-ruling> consid. 4 p. 774), à moins qu'elle soit en mesure de fonder sa décision sur des constatations de fait inconnues ou des preuves nouvelles dont l'appréciation conduit à un autre résultat, si l'appréciation à laquelle s'est livré le juge pénal se heurte clairement aux faits constatés, ou si le juge pénal n'a pas élucidé toutes les questions de droit, en particulier celles qui touchent à la violation des règles de la circulation (<ref-ruling> consid. 3c/aa p. 104; <ref-ruling> consid. 3c/aa p. 164; <ref-ruling> consid. 1a p. 19; <ref-ruling> consid. 1b p. 273 s.; <ref-ruling> consid. 5 p. 774 s.).
En l'espèce, la cour cantonale ne s'est nullement écartée des faits constatés au pénal - en particulier le fait que le recourant s'était assoupi au volant de son véhicule arrêté à un carrefour -, mais de la qualification juridique de ces faits, et en particulier de la gravité de la faute. Le grief soulevé à ce sujet tombe par conséquent à faux.
3.2 Quant aux considérations qui ont conduit la cour cantonale a admettre que le recourant s'était endormi alors qu'il avait connu des signes avant-coureurs de fatigue, elles n'ont rien d'arbitraire. Après avoir affirmé à la police qu'il avait été victime d'un malaise, le recourant a reconnu qu'il s'était endormi. Il prétend avoir voulu ainsi éviter d'être privé de son permis de conduire, et ajoute qu'il maîtrise mal le français, ne se trouvait pas dans son état normal lors de sa déposition, n'avait pas de connaissances médicales et ignorait qu'il couvait alors une forte grippe. Le recourant n'en a pas moins expliqué qu'il avait passé une nuit blanche le 31 décembre 2007, ne se couchant le lendemain que vers onze heures du matin. Il avait peu dormi (environ cinq heures) durant la journée, puis avait travaillé toute la nuit du 1er au 2 janvier 2008, jusqu'à six heures du matin. Se sentant fatigué, il avait dormi une demi-heure dans sa voiture. Le recourant a encore précisé: "En fait, en parlant de malaise, je voulais surtout dire que j'étais trop mal pour conduire mon taxi. Seul mon état d'épuisement était en question". Ces dernières déclarations sont particulièrement claires. Le recourant ne saurait prétendre ne pas en avoir compris le sens en raison de son état ou d'une connaissance insuffisante du français. Le recourant se prévaut d'un avis de son médecin, selon lequel il aurait pu subir une hypovolémie en réaction au réchauffement de l'habitacle du véhicule. Il s'agissait toutefois d'une simple hypothèse. Les causes typiques d'un tel phénomène, énumérées dans l'article produit par le recourant, sont avant tout l'hémorragie et la déshydratation, le choc allergique et les brûlures; l'hypothermie n'est pas mentionnée. Le recourant ne prétend pas avoir connu des symptômes caractéristiques décrits, tels que tachycardie, nausée, vertiges et soif. Le manque de sommeil apparaissait ainsi comme la cause la plus probable de l'endormissement du recourant. Dans ces conditions, les explications avancées après-coup pouvaient être écartées, sans qu'il y ait lieu d'ordonner une expertise. Le recourant n'a d'ailleurs pas requis une telle expertise en instance cantonale, et ne saurait dès lors se plaindre d'une violation de son droit d'être entendu. Pour les mêmes motifs, le grief tiré de la présomption d'innocence doit être écarté.
Le recourant conteste également à tort être resté dans la circulation: même s'il a pris la précaution d'éteindre le moteur et de tirer le frein à main, il n'en est pas mois resté sur la chaussée à un carrefour alors que la signalisation lumineuse était passée au vert. Telle est d'ailleurs aussi le fait retenu dans le prononcé préfectoral, que le recourant n'a pas contesté. L'arrêt attaqué n'a, sur ce point également, rien d'arbitraire.
4. Le recourant prétend qu'il n'aurait commis qu'une faute légère au sens de l'art. 16a LCR. Il part toutefois de la prémisse qu'il aurait été victime d'un malaise soudain, et qu'il aurait pris toutes les mesures commandées par les circonstances (pauses régulières, arrêt immédiat du véhicule dans un endroit peu dangereux). Cette version des faits n'est pas celle qui a été retenue, sans arbitraire, par la cour cantonale. Dans la mesure où l'assoupissement du recourant est dû essentiellement à un manque de sommeil, il devait - sauf circonstances exceptionnelles liées à une maladie - être précédé de signes annonciateurs. La faute du recourant consiste à n'avoir pas tenu compte de ces signes et pris le risque de s'engager dans le trafic. La mise en danger, qualifiée d'abstraite par la cour cantonale, ne saurait être considérée comme légère, puisque le risque d'accident, dans un tel cas, est particulièrement élevé (<ref-ruling> consid. 2b p. 209). L'application de l'art. 16c al. 2 let. b LCR (minimum légal compte tenu de l'état de récidive du recourant) est ainsi conforme à la loi.
5. Il s'ensuit que le recours doit être rejeté, aux frais de son auteur (art. 66 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge du recourant.
3. Le présent arrêt est communiqué au mandataire du recourant, au Service des automobiles et de la navigation et à la Cour de droit administratif et public du Tribunal cantonal du canton de Vaud ainsi qu'à l'Office fédéral des routes.
Lausanne, le 1er avril 2009
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président: Le Greffier:
Féraud Kurz