When working with True Colour values, it is usually easier to manipulate the existing AcCmColor object associated with the layer object, e.g.:
(defun createlayer ( name color linetype lineweight / lay tru )
(setq lay (vla-add (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))) name))
(if (listp color)
(progn
(setq tru (vla-get-truecolor lay))
(apply 'vla-setrgb (cons tru color))
(vla-put-truecolor lay tru)
)
(vla-put-color lay color)
)
(vla-put-linetype lay linetype)
(vla-put-lineweight lay lineweight)
lay
)
Which you can call either with an ACI colour value or list of red, green & blue values:
(createlayer "test1" 2 "Continuous" aclnwtbylwdefault)
(createlayer "test2" '(100 150 200) "Continuous" aclnwtbylwdefault)
Note that this assumes that the supplied linetype is already defined within the active drawing.
I would also suggest supplying the Layer Collection as an argument rather than evaluating vlax-get-acad-object for each layer created.