A blockstring is basically is a series of attacks used to put pressure on your opponent and create openings.
A very simple example of this can be found with V.Sion: 2A 5B -> ...
In this example, there are two common followups:
6B: this is an overhead attack and must be blocked high
2B: this is a low attack and must be blocked low
However, not all characters have the luxury of having an easy overhead attack, so most must use staggered attacks to create good blockstrings. The purpose of a staggered attack is to create a frame trap - a small period of time where the opponent is actually free to act, but any action aside from blocking will get punished.
Let's take another simple example with Nanaya: 2B 5A -> ...
2B hits low, and if blocked low will guarantee that the 5A will whiff. Here are some common follow ups to this example:
2B 5A: Repeating the same string will likely stuff any attack attempts or chicken block attempts
5C... : If 5C is cancelled from 5A, it will also likely stuff attacks, as well as chicken block
See a pattern here? From these examples, it might seem that you have to block. However... another common follow up is:
Dash throw: This beats blocking.
You might notice my examples above are all short. This is because a fundamental part of a good blockstring is not being predictable. You have to mix it up to always keep the opponent guessing: Do I block high or low? Do I block or attack? Can I jump out of this?
And that's what a blockstring is in a nutshell.
As ennvi said, IADs are instant air dashes, dashing right after you jump(966 for example). Those "diagonal jumps" you are talking about might be super jumps, performed by a crouching motions and then a forward jump. So 29 would give you a super jump.