404 - Unique 404 page not found Inspired by a polyglot on the Stack Overflow 404 page:

Goal
Your goal is simple, to create a polyglot that outputs the number 404, and then terminate, in as many languages as possible.
Restrictions
Here's the twist, there's a restriction to make it harder:
You have to write N programs and pick N languages in a particular order. the ith program needs to print 404 in the first i languages, but not in any language after the ith. This is to prevent very simple solutions from destroying competition
Scoring:

The first criterion for determining a winner is the number of languages the main program runs in.
The second criterion is byte count, where the programs with more languages have more importance for this criterion.
The third and final criterion is time of submission

Clarifications:
The source codes of the programs do not need to have any relation. They're run as separate programs. Any of the programs can output trailing and/or leading whitespace. THE PROGRAMS DO NOT HAVE TO BE SUBSEQUENCES OF EACH OTHER!
Thanks to @MartinEnder for a better explanation!
54 Languages, 1331 bytes

>&lt;>, 
Gol>&lt;>, 
Foo, 
Befunge-93, 
Befunge-98, 
brainfuck, 
Brain-Flak, 
Python 2, 
Python 3, 
Hexagony, 
Perl, 
Ruby, 
Julia, 
Cardinal, 
Brainbash, 
Turtlèd, 
Deadfish~, 
Whitespace, 
Braille, 
Rail, 
Fission, 
ETA, 
Trigger,
Self-modifying Brainfuck,
Numberwang, 
Actually, 
Emoji,
Symbolic Brainfuck,
TinCan,
Alphuck,
Shove, 
Cood, 
Wise, 
Width,
Whispers,
Thue,
Surface,
Stones,
evil, 
Set,
Prelude, 
Gaot++,
Cubix,
Cubically,
PATH,
Commercial,
Brian &amp; Chuck,
Monkeys, 
Nhohnhehr,
Beam,
AsciiDots,
Alumin,
Alice,
Whirl

This is getting very long, so at @MDXF's suggestion, I'm moving the subprograms and comments to a gist. The program here is only the final program. Thanks to MDXF again for providing the TIO test driver.

54. Whirl

##\$"404"#N#S# , ,,#$#?@\404!?@GJlICJlGCC*G^+0%=%=+0%x&amp;fqpqqqiipsoddddoiipsohphhhhyhhhh? &#9;  ?nnn4$4#!000110000011110000100000100000110000011001100000111100001110011000111000110000
#?\++++:----:++++:H@((((4O0O4O@((((()()()){}){x}x){}x()){}){}()){}){})&lt;[-]&gt;[-]-[&lt;+&gt;-----]&lt;+x%"404"?.⌂----.++++.&gt;11    &#32;
#i(N/"404"ooo@ENTHOEONHSSEONTHOEONSETssipceaiiiiiscejiiiijeeeejapmzaeeaeueewzaeeeaeewzaeeaeueewqs??|?)999|997+|++++!999777+++++!999997+++++!   &#9; &#32;
print(404)&#9;
 &#9;&#9;
 &#9;&#9;
 &#9;
__DATA__=1
# \"404"*CC'[-][ .-$_"404"&amp;]
"""pp
I want 404 of this
How much is it
#  -52, Z, -1                          #
#  -48, Y, -1                          #
#  -52, X, -1                          #
[-][
x::=~404
::=
x
]&lt;&lt;&lt;
&gt; 404
&gt;&gt; Output 1
red up two blue up red up one blue up red up two blue up
baaaaa bleeeeeeeeet bleeeeeeeeet baaaaa bleeeeeeeeet
a now 404 dollar off!
a has been selling out worldwide!
2 LEFT
2 LEFT
2 UP
2 LEFT
2 TEACH
1 LEFT
1 RIGHT
1 BOND
1 BOND
1 TEACH
2 YELL
1 FIGHT
2 YELL
1 TEACH
2 YELL
set ! 52
set ! 48
set ! 52
+------+
|$0011\|
|/000\0|
|0/0@11|
|00  10|
|0\10/0|
|\1100/|
+------+
$'main'
 \-444o000o444omm^

[-][$++++++++++++++++++++++++++++++++++++++++++++++++++++.----.++++.#
&lt;&lt;&lt;&lt;&lt;&lt;```&gt;&gt;&gt;&gt;.&gt;.&gt;.
]
ss"""
#7777777777777777777777777777724091557093543643404➡77▲▲▲²²▲²²¡▼▼▼▼¡▲▲▲▲¡⠎⡆⡎⡆⢐⠣⠃s&amp;&amp;&amp;&amp;~-&lt;&lt;:&lt;&lt;:&lt;&lt;&lt;:&lt;:&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;:^||||G&lt;&gt;


Try it online!

Whirl is described as a Turning Tarpit [sic], which uses only two instructions, 1 and 0. 1 rotates the current wheel of instructions (either the math wheel or the operations wheel), 0 swaps the rotation of the wheel, and two 0s executes the instruction and switches wheels. The relevant instructions are on the first line:

000110000011110000100000100000110000011001100000111100001110011000111000110000

000110000 Switch to math wheel and execute math.not (math.val = 1)
011110000 Execute math.store, (memval = math.val = 1)
10000     Execute math.add, (math.val = math.val+memval = 1+1 = 2)
010000    Execute math.store (memval = math.val = 2)
0110000   Execute math.multiply, (math.val = math.val*memval = 2*2 = 4)
01100     Execute math.store (memval=math.val) and switch to the ops ring
110000    Execute ops.one (ops.val = 1)
011110000 Executes ops.intio, printing memval (4)
11100     Add one to memory pointer (memval=0)
1100      Execute maths.nop to switch back to ops ring
011100    Execute ops.intio, printing memval (0)
01100     Execute maths.store, (memval=maths.val=4)
00        Execute maths.intio, printing memval (4)


The leading 01s cancel each other out, and the trailing 01s cause a floating point exception.

Edit: fixed a bunch of broken stuff

(Commands to be careful about in the future: UDLR%"[.]o473psjw)

If any programs work for future languages or don't work for current or previous languages, please comment.