It's true that if you just use the words 'community service' with no explanation, it will probably look like a sentence given by a judge to avoid jail time for something like drunk driving.
However, 'civilian service' is so vague and meaningless that IMO it's no better, and 'military/civilian service' would actually be misleading, since he didn't do both. (And 'civil service' is government bureaucracy, as philke said.)
So I think you just have to take the space to give a brief explanation. mgc's idea with 'in lieu of' seems good, so what about something like this:
*Jan.-Oct. 2004 Aide at XYZ nursing home, Kleinstadt, Hessen. Duties included cleaning rooms, serving meals, wheelchair transport, and lifting bedridden patients. Also helped organize day trips and special events.
(*State-sponsored community service performed in lieu of required military service)
(If that's indeed the kind of job that Zivildienst can involve; if not, substitute something more plausible.)
As for the chronology, a gap in a résumé matters less when someone is in midlife and has long been successfully employed. Pauses in people's work lives do happen -- they get sick, or get laid off, or have children or whatever, and you just have to explain that on the résumé or in the interview. But especially for a first or second job application, I agree that it's probably better not to leave an unexplained gap.
In any case, I definitely agree that Hans should be given credit for his service to his country as well as for the actual work he did. Surely together we can find a good way to explain it so that it's clear at a glance.