What feature of a quantum algorithm makes it better than its classical counterpart? Are quantum computers faster than classical ones in all respects?
"What feature of a quantum algorithm makes it better than its classical counterpart?"
First, a classical algorithm can be thought of as a quantum algorithm that makes no use of quantum superpositions. Therefore a quantum algorithm can be at least as good as its classical counterpart. No classical algorithm can be "better" than quantum algorithms can do, because one example of a quantum algorithm is the classical algorithm itself.
What is a feature of quantum algorithms that make them better than classical algorithms? The feature of quantum entanglement and superposition, which allows us to answer the Deutsch-Jozsa problem with 1 query instead of $2^n$.
"Are quantum computers faster than classical ones in all respects?"
I believe we do not know much about "speed". We know that we can factor the number $n$ with $log^3(n)$ operations instead of $n$ operations, but how fast are those operations going to be? We only know the answer to this question for quantum computers that have < 10000 qubits, and these have not been able to factor numbers larger than about 7 digits. You can see in WolframAlpha that factoring any number with ~10 digits finishes instantly, so even if the IBM quantum computer is faster, it is insignificantly faster. We need millions of physical qubits (100s of logical qubits) to make a real comparison, and what that million-qubit architecture will look like (if it's even possible to make) is something we don't yet know. Maybe to make a device with a million qubits will come at the sacrifice of gate fidelities or gate speeds.
The answer is "no" quantum algorithms are not better in "all respects" because they are harder to implement physically!
The answers above say that interference, entanglement, and superposition are the reasons for a quantum computer being faster. While this is not wrong, it is not the full story either.
Stabiliser computation, which starts with a $|0...0\rangle$ basis state and then applies Clifford operations to it, before measuring it in the computational basis, heavily involves interference, entanglement and superposition, yet is efficiently classically simulable (this result is known as the Gottesman-Knill theorem). So those features are obviously not "the" reason quantum computers are better at certain tasks. They might be necessary features, but not sufficient.
So to get a true answer we would need to characterise some kind of property of resource that can be present in a quantum computer that is necessary for the computation to be faster. I think a good candidate for this is the negativity in a probability distribution. Using, for instance, a Wigner function, we can represent any quantum state as a `quasi-probability distribution', that is a probability distribution where probabilities are allowed to be negative. Quantum operations then become quasi-stochastic operations. There are classical simulation algorithms that can simulate a quantum computation using this quasi-stochastic representation of a quantum computation. Crucially, the speed of this simulation depends on how much negativity is present in the computation.
So we could equally well say that quantum computers are better than classical computers because they can deal with negative probabilities.