Faits: A. Né en 1980 et ressortissant de la République populaire du Bangladesh, X._ a vu sa demande d'asile rejetée et son renvoi de Suisse prononcé définitivement le 7 janvier 2004. Un délai au 4 mars 2004 lui a été imparti pour quitter la Suisse. Le 3 février 2004, X._ a indiqué à l'Office cantonal de la population du canton de Genève (ci-après l'Office cantonal) qu'il ne possédait aucun document d'identité du Bangladesh, qu'il refusait d'y retourner et n'entendait entreprendre aucune démarche pour organiser son départ. Il a confirmé cette position les 15 août 2007, 17 janvier, 19 juin, 3 juillet et 21 novembre 2008. Le 18 novembre 2009, le consulat du Bangladesh a délivré un laisser-passer valable pour trois mois au nom de X._. Le 25 novembre 2009, le prénommé a été interpellé par la police chargée d'exécuter son renvoi. X._ s'est opposé à son refoulement par un vol de ligne et a été placé en détention administrative pour une durée de trois mois. Cette mise en détention a été confirmée par la Commission cantonale genevoise de recours en matière administrative (ci-après la Commission de recours), mais seulement pour une durée d'un mois, soit jusqu'au 25 décembre 2009. Le 15 décembre 2009, X._ s'est opposé à son renvoi au Bangladesh prévu par un vol avec escorte policière. Le 21 décembre 2009, la Commission de recours, donnant suite à la requête de l'Office cantonal, qui entendait organiser le renvoi par vol spécial qui pourrait être mis en place à la fin du mois de février 2010, a prolongé la détention administrative de X._ pour une durée de 3 mois, jusqu'au 25 mars 2010. Le Tribunal administratif du canton de Genève a confirmé cette décision le 7 janvier 2010. Le 22 février 2010, l'Office fédéral des migrations (ci-après l'Office fédéral) a informé l'Office cantonal que la validité du laisser-passer de X._ avait été prolongée jusqu'au 17 juin 2010 et qu'un vol spécial pour Dhaka était planifié et pourrait avoir lieu à fin mars ou début avril 2010. B. Le 19 mars 2010, l'Office cantonal a demandé la prolongation de la détention administrative de X._ pour une durée de deux mois. Le 22 mars 2010, la Commission de recours a entendu les parties. X._ a confirmé qu'il s'opposait à son départ de Suisse et qu'il souhaitait être mis en liberté pour se rendre dans un pays autre que le Bangladesh. La représentante de l'Office cantonal a indiqué, pour sa part, que les vols spéciaux organisés avant que l'Office fédéral ne les suspende à la suite du décès d'une personne renvoyée étaient maintenus. Un tel vol à destination du Bangladesh était prévu dans la deuxième moitié du mois d'avril 2010. Par décision du 22 mars 2010, la Commission de recours a prolongé la détention administrative de X._ pour une durée de deux mois, soit jusqu'au 25 mai 2010. Par arrêt du 9 avril 2010, le Tribunal administratif a rejeté le recours interjeté par X._ à l'encontre de la décision du 22 mars 2010. S'agissant de l'organisation d'un vol spécial, les juges cantonaux ont retenu, sur la base des pièces du dossier, que celle-ci était en cours et qu'un tel vol pourrait avoir lieu dans la deuxième moitié du mois d'avril 2010. La détention qui avait débuté le 25 novembre 2009 restait proportionnée, dès lors qu'un vol spécial pourrait être organisé très rapidement, comme l'avait affirmé l'Office des migrations dans des courriers électroniques datés du 19 mars 2010. C. Contre l'arrêt du 9 avril 2010, X._ forme un recours en matière de droit public au Tribunal fédéral, dans lequel il conclut à l'annulation de l'arrêt attaqué, à ce que sa libération immédiate soit ordonnée, subsidiairement à ce que toutes les mesures utiles à l'établissement des faits pertinents soient mises en oeuvre. Il demande par ailleurs le bénéfice de l'assistance judiciaire. Le Tribunal administratif n'a pas formulé d'observations, renvoyant à son arrêt. La Commission de recours ne s'est pas prononcée. L'Office cantonal propose de rejeter le recours, soulignant que, selon les informations récentes communiquées par l'Office fédéral, il était probable qu'une reprise des vols spéciaux soit ordonnée d'ici au 31 mai 2010. L'Office fédéral, dans une écriture du 21 mai 2010, a renvoyé, en ce qui concerne la suspension des vols spéciaux, à un mémoire de recours déposé dans une autre procédure pendante devant le Tribunal fédéral, sans produire ce document. Invité à se déterminer, X._ a maintenu sa position le 27 mai 2010, en produisant un communiqué de presse de l'Office fédéral du 21 mai 2010.