Because the initials in question are of Latin origin ("post meridian"/"ante meridian"), it makes sense to keep consistent with other Latin abbreviations, e.g. (oh there's one right there) "i.e.", "e.g." when there are two words.
I would say, use whatever seems natural, but I prefer "10 p.m." and "8:30 a.m.", for example.
As a German native speaker, I would suggest using the full form ("10:00 am") when possible, though the short form should suffice. When no "am" is present, Germans may assume the time is given in 24h form. Germans who are aware of the am/pm distinction in English may be confused when it is missing.
As for the colon vs decimal, I've encountered both forms in German and though I personally prefer the colon, some style guides may disagree (I would have to check the Duden).
So to answer your question: avoid "10 o'clock" as it may be considered ambiguous. As a rule of thumb: if it's before noon, use the "am" form; if it's after noon, use the 24h form or use the "pm" form with the 24h form in parentheses like so:
arrrive at 10 pm (22:00 h)
Alternatively, qualify the time (e.g. "at 10 in the morning") like emragins suggested.
In any case, the American "military time" form ("2200 hrs") will sound odd to most Germans. If there is no separator between the hour and minute in German, it's usually due to laziness, not style.
Best Answer
You can reword the phrase a few ways to imply no end (or an indeterminate end):
You can also insert a phrase after until:
Across different days: