When applying a voltage directly to the heater element, it should heat up very fast. You could measure the resistance of the heater element. A 12 V heater element of 40 Watt should have a resistance of about 3.6 Ω; you could test that with a multitester. If the resistance is a lot higher, the heater cartridge could be a 24 V heater element. Operating such element on 12 V would imply that the power output would only be 10 W. Heating of the hotend is much slower at low power output.
Incorrect PID settings can indeed prevent the heater to heat up fast enough to trigger errors during tuning. The trick is to heat up the element a little prior to performing the tuning, or upload new PID settings to the firmware prior to tuning.
PID settings can be set not only by uploading a modified firmware version (configuration file), but also by sending commands to the printer over serial terminal connection (e.g. Repetier host, OctoPrint, Pronterface, etc.) or stored in a G-code file and executing it ("printing"). The G-code command to set the PID values is M301
. The relevant parameters are:
Hnnn heater number
Pnnn proportional (Kp)
Innn integral (Ki)
Dnnn
derivative (Kd)