Well, sorry to say, but the firmware fix was only temporary, as others have reported when you actually start using the connection in any way the latency spikes and packet loss is common again.
So I thought I'd borrow my friend's Airport Extreme (the dual-band 2.4/5ghz N edition), since he also has a 2011 MacBook Pro but didn't report any issues like this.
I've had it for the past week, and surprise, surprise, it's rock solid with stable latency:
64 bytes from 192.168.1.1: icmp_seq=30 ttl=64 time=4.639 ms
64 bytes from 192.168.1.1: icmp_seq=31 ttl=64 time=4.772 ms
64 bytes from 192.168.1.1: icmp_seq=32 ttl=64 time=4.709 ms
64 bytes from 192.168.1.1: icmp_seq=33 ttl=64 time=4.706 ms
64 bytes from 192.168.1.1: icmp_seq=34 ttl=64 time=1.263 ms
64 bytes from 192.168.1.1: icmp_seq=35 ttl=64 time=4.806 ms
64 bytes from 192.168.1.1: icmp_seq=36 ttl=64 time=4.701 ms
64 bytes from 192.168.1.1: icmp_seq=37 ttl=64 time=1.251 ms
64 bytes from 192.168.1.1: icmp_seq=38 ttl=64 time=1.199 ms
64 bytes from 192.168.1.1: icmp_seq=39 ttl=64 time=1.011 ms
64 bytes from 192.168.1.1: icmp_seq=40 ttl=64 time=1.155 ms
64 bytes from 192.168.1.1: icmp_seq=41 ttl=64 time=1.242 ms
64 bytes from 192.168.1.1: icmp_seq=42 ttl=64 time=1.122 ms
64 bytes from 192.168.1.1: icmp_seq=43 ttl=64 time=1.241 ms
64 bytes from 192.168.1.1: icmp_seq=44 ttl=64 time=1.236 ms
64 bytes from 192.168.1.1: icmp_seq=45 ttl=64 time=1.162 ms
64 bytes from 192.168.1.1: icmp_seq=46 ttl=64 time=1.281 ms
64 bytes from 192.168.1.1: icmp_seq=47 ttl=64 time=4.903 ms
64 bytes from 192.168.1.1: icmp_seq=48 ttl=64 time=4.732 ms
64 bytes from 192.168.1.1: icmp_seq=49 ttl=64 time=4.861 ms
64 bytes from 192.168.1.1: icmp_seq=50 ttl=64 time=4.720 ms
64 bytes from 192.168.1.1: icmp_seq=51 ttl=64 time=4.677 ms
64 bytes from 192.168.1.1: icmp_seq=52 ttl=64 time=4.811 ms
64 bytes from 192.168.1.1: icmp_seq=53 ttl=64 time=4.627 ms
64 bytes from 192.168.1.1: icmp_seq=54 ttl=64 time=4.792 ms
64 bytes from 192.168.1.1: icmp_seq=55 ttl=64 time=4.726 ms
64 bytes from 192.168.1.1: icmp_seq=56 ttl=64 time=4.773 ms
64 bytes from 192.168.1.1: icmp_seq=57 ttl=64 time=5.019 ms
64 bytes from 192.168.1.1: icmp_seq=58 ttl=64 time=4.927 ms
64 bytes from 192.168.1.1: icmp_seq=59 ttl=64 time=4.597 ms
64 bytes from 192.168.1.1: icmp_seq=60 ttl=64 time=4.747 ms
64 bytes from 192.168.1.1: icmp_seq=61 ttl=64 time=1.210 ms
64 bytes from 192.168.1.1: icmp_seq=62 ttl=64 time=1.134 ms
64 bytes from 192.168.1.1: icmp_seq=63 ttl=64 time=4.800 ms
64 bytes from 192.168.1.1: icmp_seq=64 ttl=64 time=1.932 ms
64 bytes from 192.168.1.1: icmp_seq=65 ttl=64 time=4.838 ms
64 bytes from 192.168.1.1: icmp_seq=66 ttl=64 time=4.811 ms
64 bytes from 192.168.1.1: icmp_seq=67 ttl=64 time=4.701 ms
64 bytes from 192.168.1.1: icmp_seq=68 ttl=64 time=1.134 ms
64 bytes from 192.168.1.1: icmp_seq=69 ttl=64 time=4.855 ms
64 bytes from 192.168.1.1: icmp_seq=70 ttl=64 time=4.778 ms
64 bytes from 192.168.1.1: icmp_seq=71 ttl=64 time=1.086 ms
64 bytes from 192.168.1.1: icmp_seq=72 ttl=64 time=4.774 ms
64 bytes from 192.168.1.1: icmp_seq=73 ttl=64 time=1.077 ms
64 bytes from 192.168.1.1: icmp_seq=74 ttl=64 time=4.671 ms
64 bytes from 192.168.1.1: icmp_seq=75 ttl=64 time=4.790 ms
64 bytes from 192.168.1.1: icmp_seq=76 ttl=64 time=1.230 ms
64 bytes from 192.168.1.1: icmp_seq=77 ttl=64 time=4.681 ms
64 bytes from 192.168.1.1: icmp_seq=78 ttl=64 time=4.885 ms
64 bytes from 192.168.1.1: icmp_seq=79 ttl=64 time=4.673 ms
64 bytes from 192.168.1.1: icmp_seq=80 ttl=64 time=4.802 ms
64 bytes from 192.168.1.1: icmp_seq=81 ttl=64 time=4.945 ms
64 bytes from 192.168.1.1: icmp_seq=82 ttl=64 time=4.828 ms
64 bytes from 192.168.1.1: icmp_seq=83 ttl=64 time=4.677 ms
64 bytes from 192.168.1.1: icmp_seq=84 ttl=64 time=4.712 ms
64 bytes from 192.168.1.1: icmp_seq=85 ttl=64 time=4.598 ms
64 bytes from 192.168.1.1: icmp_seq=86 ttl=64 time=4.687 ms
64 bytes from 192.168.1.1: icmp_seq=87 ttl=64 time=2.498 ms
64 bytes from 192.168.1.1: icmp_seq=88 ttl=64 time=4.671 ms
64 bytes from 192.168.1.1: icmp_seq=89 ttl=64 time=4.719 ms
64 bytes from 192.168.1.1: icmp_seq=90 ttl=64 time=4.841 ms
64 bytes from 192.168.1.1: icmp_seq=91 ttl=64 time=4.808 ms
64 bytes from 192.168.1.1: icmp_seq=92 ttl=64 time=1.167 ms
64 bytes from 192.168.1.1: icmp_seq=93 ttl=64 time=4.708 ms
64 bytes from 192.168.1.1: icmp_seq=94 ttl=64 time=4.639 ms
64 bytes from 192.168.1.1: icmp_seq=95 ttl=64 time=4.716 ms
64 bytes from 192.168.1.1: icmp_seq=96 ttl=64 time=1.240 ms
64 bytes from 192.168.1.1: icmp_seq=97 ttl=64 time=4.864 ms
64 bytes from 192.168.1.1: icmp_seq=98 ttl=64 time=0.965 ms
64 bytes from 192.168.1.1: icmp_seq=99 ttl=64 time=4.656 ms
64 bytes from 192.168.1.1: icmp_seq=100 ttl=64 time=4.784 ms
64 bytes from 192.168.1.1: icmp_seq=101 ttl=64 time=4.487 ms
64 bytes from 192.168.1.1: icmp_seq=102 ttl=64 time=1.197 ms
64 bytes from 192.168.1.1: icmp_seq=103 ttl=64 time=4.866 ms
64 bytes from 192.168.1.1: icmp_seq=104 ttl=64 time=4.573 ms
64 bytes from 192.168.1.1: icmp_seq=105 ttl=64 time=1.074 ms
64 bytes from 192.168.1.1: icmp_seq=106 ttl=64 time=4.864 ms
64 bytes from 192.168.1.1: icmp_seq=107 ttl=64 time=4.871 ms
64 bytes from 192.168.1.1: icmp_seq=108 ttl=64 time=1.303 ms
64 bytes from 192.168.1.1: icmp_seq=109 ttl=64 time=1.174 ms
64 bytes from 192.168.1.1: icmp_seq=110 ttl=64 time=4.654 ms
64 bytes from 192.168.1.1: icmp_seq=111 ttl=64 time=1.193 ms
64 bytes from 192.168.1.1: icmp_seq=112 ttl=64 time=4.673 ms
64 bytes from 192.168.1.1: icmp_seq=113 ttl=64 time=1.196 ms
64 bytes from 192.168.1.1: icmp_seq=114 ttl=64 time=4.657 ms
64 bytes from 192.168.1.1: icmp_seq=115 ttl=64 time=1.616 ms
64 bytes from 192.168.1.1: icmp_seq=116 ttl=64 time=4.949 ms
64 bytes from 192.168.1.1: icmp_seq=117 ttl=64 time=4.652 ms
64 bytes from 192.168.1.1: icmp_seq=118 ttl=64 time=4.678 ms
64 bytes from 192.168.1.1: icmp_seq=119 ttl=64 time=1.258 ms
64 bytes from 192.168.1.1: icmp_seq=120 ttl=64 time=4.751 ms
64 bytes from 192.168.1.1: icmp_seq=121 ttl=64 time=4.539 ms
64 bytes from 192.168.1.1: icmp_seq=122 ttl=64 time=4.690 ms
64 bytes from 192.168.1.1: icmp_seq=123 ttl=64 time=4.708 ms
64 bytes from 192.168.1.1: icmp_seq=124 ttl=64 time=4.833 ms
64 bytes from 192.168.1.1: icmp_seq=125 ttl=64 time=4.728 ms
64 bytes from 192.168.1.1: icmp_seq=126 ttl=64 time=4.582 ms
64 bytes from 192.168.1.1: icmp_seq=127 ttl=64 time=4.727 ms
64 bytes from 192.168.1.1: icmp_seq=128 ttl=64 time=4.673 ms
64 bytes from 192.168.1.1: icmp_seq=129 ttl=64 time=4.511 ms
64 bytes from 192.168.1.1: icmp_seq=130 ttl=64 time=4.624 ms
64 bytes from 192.168.1.1: icmp_seq=131 ttl=64 time=4.632 ms
64 bytes from 192.168.1.1: icmp_seq=132 ttl=64 time=4.592 ms
64 bytes from 192.168.1.1: icmp_seq=133 ttl=64 time=4.726 ms
64 bytes from 192.168.1.1: icmp_seq=134 ttl=64 time=0.987 ms
64 bytes from 192.168.1.1: icmp_seq=135 ttl=64 time=4.938 ms
64 bytes from 192.168.1.1: icmp_seq=136 ttl=64 time=4.956 ms
64 bytes from 192.168.1.1: icmp_seq=137 ttl=64 time=5.062 ms
64 bytes from 192.168.1.1: icmp_seq=138 ttl=64 time=4.589 ms
64 bytes from 192.168.1.1: icmp_seq=139 ttl=64 time=4.707 ms
64 bytes from 192.168.1.1: icmp_seq=140 ttl=64 time=1.147 ms
64 bytes from 192.168.1.1: icmp_seq=141 ttl=64 time=4.681 ms
64 bytes from 192.168.1.1: icmp_seq=142 ttl=64 time=4.767 ms
64 bytes from 192.168.1.1: icmp_seq=143 ttl=64 time=4.762 ms
64 bytes from 192.168.1.1: icmp_seq=144 ttl=64 time=4.704 ms
64 bytes from 192.168.1.1: icmp_seq=145 ttl=64 time=4.765 ms
64 bytes from 192.168.1.1: icmp_seq=146 ttl=64 time=4.753 ms
64 bytes from 192.168.1.1: icmp_seq=147 ttl=64 time=4.728 ms
So it looks like there is some incompatibility between the 2011 MacBook Pro and all WiFi access points except Apple's own.
Kind of defeats the point of WiFi, no?
Annoyed, because if I buy an Airport Extreme, that would be the third WiFi device I have bought to get this $3.5k laptop's wireless to work reliably.