What technical reasons exist for off-chain transactions? I'm trying to get a grasp on off-chain transactions, as they seem more common than I initially realized but they are not the way that I originally perceived bitcoin being used as an outsider looking in. What technical advantages exist for off-chain transactions?
Speed
An off-chain transaction can complete instantly, without waiting for confirmation.

Naming
With off-chain transactions, you can send Bitcoins to another user by referencing their username, rather than typing in an address.

Possibly lower transaction fees, possibly fewer on-chain transactions
Depending on how many transactions happen off-chain, it can save space on the blockchain. However, if there's only one off-chain transaction, it will end up consuming more space. (The coins will travel from User A -&gt; Off-chain transaction provider -&gt; User B instead of User A -&gt; User B)

(Related to #3) It makes it feasible to have lots of very small transactions. For example, you might use off-chain transactions to pay someone a microfee for every minute that you use their wifi.