This is how I would develop the formulation (conceptually).

Investment costs, $Q$:
$$Q = \sum_{i} m_{i} c_{i}$$

Investment returns for $i$ at time $t$: we know that the return for $i$ is $m_{i} r_{i}$ if $t \geq t_{i}$, otherwise it is 0. To model this `if`

logical condition:
$$ R = \sum_{i} \delta_{i} m_{i} r_{i} $$
$$ \delta_{i} = 1, \text{ if } t \geq t_{i} $$
$$ \delta_{i} = 0, \text{ if } t < t_{i} $$
where $R$ = overall returns. In this case, $t$ and $t_{i}$ are parameters, therefore $\delta_{i}$ are parameters too, not binary variables. They can be pre-calculated for a specified $t$.

In summary, your problem can be represented as follows:

$$ \max_{m_{i}} (R - Q)$$
s.t.
$$ Q = \sum_{i} m_{i} c_{i}$$
$$ R = \sum_{i} \delta_{i} m_{i} r_{i}$$
$$ Q \leq C $$
$$ m_{i} \geq 0\quad \forall i$$

where $C, c_{i}, r_{i}, \delta_{i}, t, t_{i}$ are parameters.

So, if $m_{i} \in \mathbb{R}$, this would be a linear program. If $m_{i} \in \mathbb{N}$, this becomes a mixed-integer linear program. (Note: for tractability in the integer case, you may need to specify a reasonably small upper-bound for $m_{i}$ or use partial integer variables)

For $t \rightarrow \infty$ (i.e. all the investments have reached maturity), simply set all $\delta_{i} = 1$.