QuTiP uses double complex data, so two float64 numbers. It maybe that you need to modify the atol and/or rtol values of the solver for you given parameters, but I think that that is besides the point.
Everything has units, but the computer does care, or know, about units. Things like 1e9 are not needed, or particularly useful to have in a sim. For example, an oscillator with angular frequency of 10ghz, or 10mhz, can be entered in the exact same way.
H = 10*a.dag()*a
The only difference comes from the interpretation of the units of time. If, for example, you have
tlist = np.linspace(0,1,100)
Then the evolution corresponds to timescales of 1ns, or 1microsec, respectively, even though the simulation is the same.
One should also be cautious of the difference between the size of number that a float can hold, and the precision of a floating point number.