Well, I've decided. Or rather, I've been convinced by my fabulous commenters here and on the Mr. Money Mustache forum. There seems to be a consensus that the debt snowball approach will keep me feeling good, deliver less risk, and not materially hinder my student loan payoff.
It was JR on the MMM forum who broke the metaphorical camel's back. It's not often I think about getting laid off. But, as a self-professed "wage slave" who depends on getting paid for my labor in order to live comfortably, losing my job is a risk I deal with. Eliminating that risk is a big part of working toward financial independence.
With my 401k loan, I'm even more exposed to job loss risk: if I lose my job, I have weeks or months before I need to repay my loan, or it counts as premature disbursement and triggers an income tax event and a 10% penalty. That's really bad! And it would be on top of losing my job.
I've been reading a lot of Warren Buffett lately, specifically his annual letters to Berkshire Hathaway shareholders. One thing I've taken away is that he assesses risk differently than most do: he always keeps catastrophic risk or "tail risk" in mind. Through Berkshire Hathaway, Warren Buffett holds billions of dollars in excess liquid reserves, earning a pittance of a return, so that he will always be solvent. He readily admits foregoing a few percentage points of return. But in the 2008 financial crisis he was able deploy massive amounts of capital both keeping the financial system afloat and ensuring Berkshire would not sink (and making a tidy profit along the way).
With that in mind, the best way I can justify paying off my 401k loan is through reduced catastrophic risk. The natural high I get from paying off another loan is a nice side benefit.
Now that that's decided I've got to follow through. Sending in this payment is not going to be nearly as easy as making a student loan payment, which I can do right now from the comfort of my desk chair. I've got to get a certified check, cashier's check, or money order to my HR person. Then hopefully she'll deal with the 401k company. I've got to make sure the amount on the check is correct and hope the check arrives at its destination while the 10-day payoff quote is still valid.
Of course, getting a cashier's check requires visiting a bank and spending a few bucks. That's annoying. There is, however, a silver lining. I'm going to use this as an excuse to extricate myself from Bank of America's tendrils once and for all. I've been fed up with their fee-this and extra-charge-that attitude for a while now. They were nicer when they held our mortgage but those days are past. Now I only use them as a physical check cashing and cash withdrawal location.
I did some research and found a local bank, walking distance from my house, that offers a completely free checking account with no minimums and no direct deposit requirement. Checks still cost money, of course; otherwise it's no-hassle. Remember that Bank of America doesn't have any no-fee checking accounts, they just have different ways of waiving the fees (one of my accounts has direct deposit; the other is grandfathered in, I think).
The headline reason I'm going to switch banks, though, is the cost of getting a cashier's check. Bank of America charges $10. My soon-to-be-new local bank charges $8.
Oh, one more thing. Even though I decided to pay off my 401k loan, I'm still making payments on my student loan. Pending my decision on the matter I set aside enough to pay off my 401k loan, and then sent the rest of my cash to the feds. And what do you know, the payment cleared today.
$2500 payment on 7/23/2012. Applied principal: $2,403.57. Applied interest: $96.43. Outstanding balance: $16,536.79. Those are some good-looking numbers.