Zulu for "Z" because it is the Zeroth meridian, passing through the Greenwich observatory, not necessarily because the UTC offset is zero, although this is a consequence.
Yes there is an extension based upon whole hour increments, and yes there are more than 24 time zones since some align to a half hour.
"A" was for "Atlantic Time" and "Y" was for "Yukon" time, in a mnemonic fashion, see RFC724, noting convenience of "H" for Hawaii.
RFC 733 explicitly states "J" is not used. These are but humble RFC's but ratify the convention in the digital age.
It was a US military extension. Whereas the email header +/- convention is more widely used by mail servers. It makes sense that ARPA (& Net) would follow. Aviation usage would be more informal.
Table from RFC 733 Military is taken to mean US military.
zone = ( ["-"] ( "GMT" ; Relative to GMT:
; North American
/ "NST" / ; Newfoundland:-3:30
/ "AST" / "ADT" ; Atlantic: - 4/ - 3
/ "EST" / "EDT" ; Eastern: - 5/ - 4
/ "CST" / "CDT" ; Central: - 6/ - 5
/ "MST" / "MDT" ; Mountain: - 7/ - 6
/ "PST" / "PDT" ; Pacific: - 8/ - 7
/ "YST" / "YDT" ; Yukon: - 9/ - 8
/ "HST" / "HDT" ; Haw/Ala -10/ - 9
/ "BST" / "BDT" ; Bering: -11/ -10
1ALPHA )) ; Military: Z = GMT;
; A:-1; (J not used)
; M:-12; N:+1; Y:+12
/ ( ("+" / "-") 4DIGIT ) ; Local differential
; hours/min. (HHMM)
Of course the differential format is predominantly used in email headers.