A slightly different point of view for answering this question is the following one:

First, if $M$ is simply connected, then $E\to M$ admits a flat connection if and only if $E$ is trivial, so in this case, the 'known obstructions' are the obstructions to triviality.

Determining when a given bundle over a simply-connected manifold is trivial is not a simple matter, though. For example, consider the tangent bundle $T$ to an odd-dimensional sphere $S^{2p+1}$. It is a highly non-trivial result that $TS^{2p+1}\to S^{2p+1}$ is trivial if and only if $p\in\{0,1,3\}$. (Note that none of the usual characteristic classes, i.e., Stiefel-Whitney, Chern, or Pontrjagin classes of the bundle, are of any use whatsoever for this problem, since they all vanish identically for trivial reasons.) It is not clear what one might mean by 'the known obstructions' in this case.

Of course, in the special case of vector bundles $E\to S^n$ ($n>1$), we do have an answer of sorts: If $E$ has rank $d$, there is an associated element $\delta(E)\in\pi_{n-1}\bigl(\mathrm{SO}(d)\bigr)$ determined by the 'clutching function' (see Steenrod's *The Topology of Fibre Bundles*). Then $E$ is trivial if and only if $\delta(E)=0$. Of course, the higher homotopy groups of $\mathrm{SO}(d)$ can be quite complicated, and, even when they are known, computing $\delta(E)$ is a nontrivial task. It's not clear to me how one would fit this into a more general 'obstructions' theory for other simply-connected manifolds.

If $M$ is not simply-connected, then the first thing to do is to consider the simply-connected cover, $\pi:\tilde M\to M$ with deck transformation group $\Gamma = \pi_1(M,m_0)$, and look at the pull-back bundle $\tilde E\subset \tilde M \times E$. If $E\to M$ admits a flat connection, then so will $\tilde E\to \tilde M$, so $\tilde E\to \tilde M$ must be trivial. I think it's reasonable to call this the first 'known obstruction': $\tilde E\to \tilde M$ must be trivial. Of course, we have seen that computing this 'obstruction' could be difficult.

Suppose, though, that we have a method to effectively determine when $\tilde E\to\tilde M$ is trivial, and we can construct a trivialization, or equivalently, a map $\tau:\tilde E\to \mathbb{R}^d$ that is an isomorphism on each fiber $\tau_{\tilde m}:\tilde E_{\tilde m}\to \mathbb{R}^d$. Since the action of $\Gamma$ on $\tilde M$ lifts trivially to $\tilde E$, we will have $\tau(\gamma\cdot\tilde m, v) = \rho(\gamma,\tilde m)\tau(\tilde m, v)$ where $\rho:\Gamma\times \tilde M\to \mathrm{GL}(d,\mathbb{R})$.

If $E\to M$ has a flat connection, and we consider the induced flat connection on $\tilde E\to\tilde M$, then we can choose a trivialization $\tau^*:\tilde E\to \mathbb{R}^d$ that is constant on each parallel section, and this will have the property that $\rho(\gamma,\tilde m) = \rho(\gamma,\tilde m_0)$. Conversely, if $\rho$ can be factored in the form $\rho(\gamma,\tilde m) = \psi(\tilde m)^{-1}\rho(\gamma,\tilde m_0)\psi(\tilde m)$ for some $\psi:\tilde M\to \mathrm{GL}(d,\mathbb{R})$, then there will be a trivialization of $\tilde E\to \tilde M$ that is compatible with the action of $\Gamma$ in such a way that it preserves a flat connection that 'pushes down' to a flat connection on $E\to M$.

Thus, one 'just' needs to work out 'obstructions' to such a factorization.

I don't think that this is an easy problem either, but at least it gives a line of attack.