Great deep dive. I recently migrated a legacy app from a CLB to an NLB for its TCP-preserving features, and your explanation of the NLB's flow stickiness versus the ALB's request-based routing perfectly captures the key architectural decision we had to make.