I look at it roughly like this. As long as I am holding cash (and I need to hold a lot of cash due to very high monthly expenses for now), the comparison is as follows:
With the above real-life example of a $20 bull call spread, I let it close at $19.90 a week or two before expiration. I could have let it close at $19.00 a month ago or so. So I earned an extra 90 cents over the month. Had I let it close a month ago and put the money into a 4-week treasury bill, it would have earned 5.4%, or 9 cents over the month. In my particular case, letting it run almost to expiry earned me 10 times as much. Of course, letting it run another two weeks would have earned me 10 cents more, instead of 4.5 cents in a treasury bill, so financially it would have been better to let it ride until next Friday.
In the end, like any investing, it all depends on what the alternative is. Sometimes capturing the last dollar (or ten cents) is worth it, sometimes not. But it depends on where the money will go otherwise.